C 奇数整数相加不正确
做一个练习,从用户那里取5个整数,只加奇数。由于某种原因,在最后一个数字将所有内容弄乱之前,所有内容都正确相加:C 奇数整数相加不正确,c,for-loop,C,For Loop,做一个练习,从用户那里取5个整数,只加奇数。由于某种原因,在最后一个数字将所有内容弄乱之前,所有内容都正确相加: #包括 int main(){ int userNum[5]; int i; 整数和=0; 对于(i=1;i 0){ sum=sum+userNum[i]; } } printf(“所有奇数整数之和为:%d”,总和); 返回0; } 您正在通过userNum[5]将5个数字读入数组元素userNum[1],但由于数组索引在C中从0开始,userNum[5]不存在,并且当程序尝试将数
#包括
int main(){
int userNum[5];
int i;
整数和=0;
对于(i=1;i 0){
sum=sum+userNum[i];
}
}
printf(“所有奇数整数之和为:%d”,总和);
返回0;
}
您正在通过userNum[5]
将5个数字读入数组元素userNum[1]
,但由于数组索引在C中从0开始,userNum[5]
不存在,并且当程序尝试将数字存储到数组末尾之外时,程序具有未定义的行为。其他一些变量被修改,输出是假的。未定义的行为实际上可能会产生更糟糕的后果,比如一个虚假的候选人以比对手少的选票赢得选举:)
以下是更正的版本:
#包括
int main(){
int userNum[5];
int i;
整数和=0;
对于(i=0;i<5;++i){
printf(“请输入编号%d:\n”,i+1);
如果(scanf(“%d”,&userNum[i])!=1){
printf(“无效输入\n”);
返回1;
}
如果(userNum[i]%2>0){
sum=sum+userNum[i];
}
}
printf(“所有奇数整数的和为:%d\n”,和);
返回0;
}
i=1;我非常感谢(i=0;i<5;++i)
这样做了谢谢!!和
#include <stdio.h>
int main() {
int userNum[5];
int i;
int sum = 0;
for (i = 1; i <= 5; ++i) {
printf("Please enter number %d:\n", i);
scanf("%d", &userNum[i]);
if (userNum[i] % 2 > 0) {
sum = sum + userNum[i];
}
}
printf("The sum of all odd integers is: %d", sum);
return 0;
}