for循环仅显示最后一次迭代

时间:2020-05-15 12:37:54

标签: c loops for-loop

我创建了最简单的程序,但它仅显示循环的最后一次迭代。我以前从来没有遇到过这个问题,所以也许这就是为什么我看不到有什么问题的原因。任何帮助将不胜感激

int main() {

int number = 0;

    for (int i = 0; i < 2; i++)
    {
        printf("enter number: ");
        scanf("%d", &number);
    }  
    printf("Displaying entered information:\n");
    for (int i = 0; i < 2; i++)
    {
        printf("number: %d\n", number);
    }
}

3 个答案:

答案 0 :(得分:4)

只需在同一范围内输入和显示...

int main() {

    int number = 0;

    for (int i = 0; i < 2; i++)
    {
        printf("enter number: ");
        scanf("%d", &number);
        printf("Displaying entered information:\n");
        printf("number: %d\n", number);
    }
}

答案 1 :(得分:1)

您正在执行以下操作:

阅读电话号码。
覆盖该号码。
显示最后一个数字(该值已被覆盖)。

这确实使您想到仅执行最后一个循环,但实际并非如此。

您可以将所有内容放到同一循环中,然后您会看到一切都会很好:

int number = 0;

    for (int i = 0; i < 2; i++)
    {
        printf("enter number: ");
        scanf("%d", &number);
        printf("Displaying entered information:\n");
        printf("number: %d\n", number);
    }

答案 2 :(得分:0)

如果您希望将其作为一个数组并具有define和一些更改,则可以使其动态化:

#define INPUT_SIZE 2

int main() {

    int number[INPUT_SIZE];

    for (int i = 0; i < INPUT_SIZE; i++)
    {
        printf("enter number: ");
        scanf("%d", &number[i]);
    }

    printf("Displaying entered information:\n");

    for (int i = 0; i < INPUT_SIZE; i++)
    {
        printf("number: %d\n", number[i]);
    }
}