【问题标题】:scanf with array index in C [closed]在C中具有数组索引的scanf [关闭]
【发布时间】:2017-08-31 01:35:19
【问题描述】:

当我使用这个函数进行无限循环的数组索引时,我想知道为什么 scanf 想要比“num”的数量多一。

5 // 数组的索引编号。

1 2 3 4 5 // 我放了 5 个数字,因为我将索引的数字设置为 5。但是..

6 // 我必须输入另一个数字才能完成 scanf 的工作。

1 2 3 4 5 // 数组中的数字。 6 消失了。

这是我用来测试的代码。

#include <stdio.h>

int main()
{
    int num = 0;
    int n[100000] = { 0 };

    while (1) {
        scanf("%d ", &num);     

        if (num > 100000 || num <= 0) {
            printf("Input a number again. \n");
        }

        else {
            for (int i = 0; i < num; i++) {
                scanf("%d ", &n[i]);
            }

            // Test
            for (int k = 0; k < num; k++) {
                printf("%d ", n[k]);
            }

            break;
        }
    }

    return 0;
}

【问题讨论】:

  • scanf("%d " --> scanf("%d"
  • @BLUEPIXY 很简单!!感谢您的帮助!

标签: c arrays scanf


【解决方案1】:

问题在于您的scanf,删除 %d 之后的额外空格,它会运行良好。通过此link 了解更多详情。

【讨论】:

  • 谢谢。我可以理解为什么会出现问题。
【解决方案2】:

我不确定,但我认为问题是由于您在 scanf 函数中的 %d 之后添加的额外空格字符造成的。尝试删除该空格字符并查看输出。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-22
    • 2021-02-23
    • 2021-12-29
    • 2021-02-27
    • 1970-01-01
    相关资源
    最近更新 更多