// Write a program to sum all the odd elements of an array
a = Number(prompt("a:"));
b = Number(prompt("b:"));
c = Number(prompt("c:"));
sum=Number(0);
var test = [a,b,c];
for (i=0; i<test.length;i++) {
// All even numbers can be divided by 2
if ((test[i]%2)>0) {
alert(test[i] + ":odd");
} else {
alert(test[i] + ":even");
}
test[i]=0;
}
sum=0+test[i];
alert(sum);
Run Code Online (Sandbox Code Playgroud)
我的程序运行良好,直到它意味着将它返回NaN消息的所有数字相加!关于如何解决这个问题的任何想法?
我看到你的代码有三个问题.(不计算大括号的怪异格式.)
编辑:看起来问题自我开始回答以来已经更新了几次.在"if odd"测试中你将数字设置为零 也许你想要将偶数数字归零,这样你以后可以将所有数字加起来然后得到奇数,但test[i]=0不是if/else的一部分结构体.它看起来应该是因为缩进,但JavaScript忽略了额外的空白区域.
您没有将数字添加到sum循环中.
你因为这条线而得到了NaN:
sum=0+test[i];
Run Code Online (Sandbox Code Playgroud)该语句在循环结束之外,因此在该点i等于数组的长度并且test[i]是undefined.
尝试以下伪代码:
sum = 0
for (loop through the array) {
if current number is odd
sum = sum + current number
}
Run Code Online (Sandbox Code Playgroud)