如何在循环中读取多个输入

时间:2015-11-01 02:45:13

标签: c loops

printf("number to input: \n");
scanf("%d",&y);

for(x=0;x<y;x++){
    scanf("%d",&num);
}

printf("Numbers entered: %d \n",num);

假设我们输入了值4。 scanf 将循环4次并为每个循环输入单个值1,2,3,4

最终输出应显示1 2 3 4

任何想法?

1 个答案:

答案 0 :(得分:2)

您应该使用数组来存储值。 您必须进行dinamically分配,因为数据的数量会有所不同,并且可以在读取数据之前通过用户输入来确定。

这是一个样本实现:

#include <stdio.h>
#include <stdlib.h>

int main(void) {
    int x,y=-1;
    int *num;
    printf("number to input: \n");
    scanf("%d",&y);
    if(y<0)return 1;
    num = malloc(sizeof(int)*y);
    if(num==NULL)return 1;

    for(x=0;x<y;x++){
        scanf("%d",&num[x]);
    }

    printf("Numbers entered: ");
    for(x=0;x<y;x++){
        printf("%d ",num[x]);
    }
    printf("\n");
    free(num);
    return 0;
}