2014-10-29 63 views
-6
#include <stdio.h> 
int main() 
{ 
    int a,i,b,c,d,e;   
    array[5]["b","c","d","e"]; // defining input characters as int 


    for(i=1;i<=a;i++) 
    { 
     for(j=0;j<=a;j++) 
     { 
      printf("Input number %d ",i); 
      scanf("%d",&array[j]); // every loop it goes diffrent valuable 
     } 
    } 

    printf("Your numbers %d"b,c,d,e,); 
    return 0; 
} 

我對您的評論做了一些更改。 我想將每個數字分配給不同的變量。這樣可以運行scanf嗎?

+2

程序有未定義的行爲。 – Mahesh 2014-10-29 22:37:30

+1

當你可以使用數組時,爲什麼會這樣? – 2014-10-29 22:38:24

+2

這不是如何變量的工作。查找*數組*。 – 2014-10-29 22:38:28

回答

1

我想這是你正在嘗試做的:

int main() { 

    int numList[5]; 
    int i; 
    for(i = 0; i < 5; i++) { 
     printf("Input number %d ",i); 
     scanf("%d",&a[i]); 
    } 
    printf("Your numbers: "); 
    for(i = 0; i < 5; i++) { 
     printf("%d, ",a[i]); 
    } 
    printf("\n"); 
} 

,我用於打印的方法是快速和隨意的,但你也可以使用:

printf("Your numbers are: %d,%d,%d,%d,%d.\n",a[0],a[1],a[2],a[3],a[4]); 

得到相同的結果。

對於printf函數:1%d意味着您需要在報價後列出1個整數,對於2爲2個等等。

絕對可以在陣列上讀取,它們可以節省很多時間。

還要注意的是在

用於第二指令(I = 1; I = A;我++)

是指派的a至i的值是無意義的。這也將始終導致for循環內容的運行,除非由於FilipeGonçalves指出未初始化而失敗。

+1

如果不是因爲2個小小的技術性錯誤,我會提高你的答案。首先,你需要'scanf(「%d」,&a[i]);'(注意在scanf()'的第二個參數中的操作符地址)。只是UB,因爲'a'從來沒有被初始化 - 所以,爲了準確,你不能說循環會一直運行 - 它是UB,任何事情都可能發生。 – 2014-10-29 22:55:49

+0

感謝您的更正。編輯已經完成。 – afic 2014-10-29 22:59:15

0
#include <stdio.h> 

int main(){ 
    int **x; 
    int i, a, b, c, d, e; 
    int *vars[] = {&b, &c, &d, &e, &a}; 
    x = vars; 
    for(x = vars; *x != &a; x++){ 
     scanf("%d", *x); 
    } 
    printf("%d, %d, %d, %d\n", b, c, d, e); 
    return 0; 
} 
+0

感謝您提供解決方案。我不能聲譽:) – 2014-10-29 22:59:27