2015-11-01 34 views
0
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

任何想法?

+0

你需要聲明一個數組 - 否則,你怎麼可以存儲,以將它們打印多個值.. – amdixon

+0

@amdixon鏈表是一種替代方法,但它是這裏太複雜了。 – MikeCAT

回答

2

您應該使用數組來存儲值。 由於數據數量不同,可能需要進行分配,並且可以在讀取數據之前通過用戶輸入確定。

這裏是一個sampie實現:

#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; 
} 
+0

免費(num)最後做什麼? – Cherubim

+0

它將釋放由'malloc'分配的緩衝區。 – MikeCAT

+0

感謝@MikeCAT^_ ^真的很有幫助。 – mchlim

相關問題