程序获得101个数字而不是100个

时间:2014-12-30 20:41:34

标签: c

这是一个简单的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;
}

2 个答案:

答案 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++)