While循环不想在C中正常工作

时间:2018-12-18 17:35:14

标签: c arrays while-loop

我想在数组中存储一些值,并希望当用户输入0时数组停止存储值 所以我有这段代码:

int numbers[100];
int i = 0;

do

{

        printf("Enter the %d value : ", (i+1) );
        scanf("%d", &numbers[i]);

        i++;
}while (numbers[i] != 0);

但是它不起作用,我花了2个小时在此上。 请帮助 谢谢

2 个答案:

答案 0 :(得分:2)

扩展@P__J__的答案,这可行:

int numbers[100];
int i = 0;

do
{
    printf("Enter the %d value : ", (i+1) );
    scanf("%d", &numbers[i]);

}while (numbers[i++] != 0);

存在一些遗漏的分号,但是主要问题是在i条件下使用while之前先对其进行递增。 i++返回i的原始值,然后将其递增。

答案 1 :(得分:1)

它们工作完美。

但是您要在检查条件之前增加i

尝试}while (numbers[i++] != 0);并删除上一行中的i++