【问题标题】:Filling up arrays with User inputs用用户输入填充数组
【发布时间】:2014-04-10 06:46:04
【问题描述】:

所以我创建了一个数组,并使用 For 循环使用“scanf”将值填充到数组中。我知道我不能使用“get()”,所以 scanf 似乎是我唯一的选择。

printf("Enter 4 numbers:");
getchar();
for (i = 0; i < len; i++) {
    a[i] = scanf("%d", &input);
}

这是我收到有关如何扫描元素的帮助后的新代码。我还做了一些其他的小改动。

for (i = 0; i < len; i++) {
    printf("Enter a number:");
    scanf("%d", &a[i]);
}

【问题讨论】:

  • 在@Kraken 的帮助下

标签: c arrays input


【解决方案1】:
scanf("%d", &input)

上述代码行将提示用户输入,然后在输入中添加整数值。现在,将上述内容与您的 a[i] 一起分配没有任何意义。

您可以做的是,不要将输入作为输入的载体,而是将用户的输入直接放入您的数组中

scanf("%d", &a[i]);

当然,上面这行代码会在for循环中。

干杯

【讨论】:

  • 你的解释对我来说更有意义,然后只是给我答案。所以谢谢@kraken
【解决方案2】:

使用

for (i = 0; i < len; i++) {
     scanf("%d", &a[i]);
}

scanf() 返回读取的元素数量,而不是读取的元素。阅读this

【讨论】:

    【解决方案3】:

    scanf 不是这样工作的。首先,您不需要getchar()。其次,scanf 将其输出放入参数中,而不是作为返回值。请改用以下内容。

    #include <stdio.h>
    
    int main(){
        int len = 4, i;
        int a[4];
    
        printf("Enter 4 numbers:");
        for (i = 0; i < len; i++) {
            scanf("%d", a + i);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-02-05
      • 2013-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-22
      • 2017-09-13
      • 2018-05-22
      相关资源
      最近更新 更多