开发者社区 问答 正文

一个for循环中scanf的问题

int main(void) {
    int a[5] = {0};
    for (int i = 0; i<5; i++) {
        scanf("%d",&a[i]);
        printf("%d",a[i]);
    }
    return 0;
}

若输入“1 2 3 4 5”,按scanf的语法这么输入只能赋给a[0],后面的“2 3 4 5”都会被忽略掉,printf也只会打印一个“1”出来。
可是实际情况是数组全被赋值了,运行结果是“12345”。
怎么会这样呢??求高手指教。

展开
收起
a123456678 2016-06-08 19:49:39 1887 分享 版权
1 条回答
写回答
取消 提交回答
  • #include <stdio.h>
    int main(void) {
        int a[5] = {0};
        int i = 0;
        int n = 0;
        for (i; i<5; i++) {
            scanf("%d",&a[i]);
            printf("%d",a[i]);
        }
        for(n;n<5;n++){
            printf("\n");
            printf("%d",a[n]);
        }
        return 0;
    }
    2019-07-17 19:32:37
    赞同 展开评论
问答分类:
问答地址: