关于scanf和许多输入值

时间:2015-06-18 17:47:16

标签: c

所以我正在尝试解决这个http://www.codeabbey.com/index/task_view/sum-in-loop,我有45个随机数输入。我正在使用C进行编码,所以我想使用scanf函数。问题是因为它是45个数字(用空格分隔)我想要做的是复制粘贴值,以便程序可以从数组中解决它们。我应该这样做:

int x [45]; scanf("%d %d....(x42) %d",&x,&x,...(x42),&x);

还是有更有效的方法吗? (我希望有T_T)

1 个答案:

答案 0 :(得分:0)

您不需要(也不应该)在45个指针之后编写包含45(或其他)格式说明符的单个格式字符串。

您需要使用循环。

示例:

    带有数组的
  • for循环也将保存提供的操作数

    int x[45] = {0};
    int sum = 0;
    for (int i = 0; i < 45; i++)    //style supported over C99
    {
       scanf("%d", &x[i]);
       sum += x[i];
     }
    printf("sum = %d\n", sum);
    
  • for循环没有数组,不能保存操作数,只有结果

    int x = 0;
    int sum = 0;
    for (int i = 0; i < 45; i++)    //style supported over C99
    {
        scanf("%d", &x);
        sum += x;
     }
    printf("sum = %d\n", sum);