这是一个简单的C程序,它从用户那里获得100个数字并计算偶数和奇数。 问题是它获得了101个数字而不是100个。我检查了两次,我无法弄明白。
#include <stdio.h>
int main() {
unsigned int i;
int numbers[101];
int even = 0, odd = 0;
printf("%s", "Enter 100 numbers:\n");
for (i = 0; i < 101; i++) {
scanf("%d", &numbers[i]);
if (numbers[i] % 2 == 0)
even++;
else
odd++;
printf("even is %d odd is %d\n", even, odd);
}
return 0;
}
答案 0 :(得分:10)
只需改变一下:
int numbers[101];
为:
int numbers[100];
和此:
for (i=0; i<101; i++)
为:
for (i=0; i<100; i++)
另外,您不必在2个地方更改此数字,您可以像这样定义一个常量:
#define SIZE 100
然后您可以使用常量(int numbers[SIZE];
,for (i=0; i<SIZE; i++)
)!
答案 1 :(得分:9)
如果从零开始计算,您将计算一个额外的数字。
0 ... 1 =&gt;这是2个数字
0 ... 100 =&gt;这是101个数字
从1到100,或从0到99 - 例如
for (i=0; i<100; i++)