c - 关于 scanf 和许多要输入的值

标签 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)

最佳答案

您不需要(也不应该)在 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);
    

关于c - 关于 scanf 和许多要输入的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30922262/

相关文章:

c - 简单错误 : expected declaration or statement at end of input

c - 链表问题

无法从 dotnet 核心调用自定义 PAM 模块 - 可能与多体系结构有关

c - ffmpeg 和 SDL 产生的奇怪的声音

c++ - 将整数舍入为浮点型并向 0 舍入

c - 如何更正 C 中的错误以自动翻译?

c - 尝试创建一个计算值表,从初始值到最终值增加给定数字

c - 从文本文件中读取十六进制

c - 为什么我在父进程中使用了waitpid,但是子进程仍然在父进程之后运行?

c - 验证两个数组相加时超时