2014-10-29 45 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