首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

数组输出有关问题求解

2013-04-07 
数组输出问题求解 1 #include stdio.h2 int main()3 {4int a,s,d,f,g5int q[]{a,s,d,f,g}6printf(pl

数组输出问题求解
 1 #include <stdio.h>
  2 int main()
  3 {
  4   int a,s,d,f,g;
  5   int q[]={a,s,d,f,g};
  6   printf("please input:\n");
  7   scanf("%d,%d,%d,%d,%d\n",&a,&s,&d,&f,&g);
  8   printf("%d,%d,%d,%d,%d\n",q[0],q[1],q[2],q[3],q[4]);
  9   return 0;
 10 }
       为什么屏幕输出一些乱七八糟的数,求大神指点!
~        数组
[解决办法]
 4   int a,s,d,f,g;
  5   int q[]={a,s,d,f,g};


你这里是用asdfg的值来初始化数组q,而不是用它们的引用来或者指针来初始化这个数组。也就是说,这里初始化之后,即使asdfg变了,数组也不会变。

因为asdfg在定义的时候你没初始化,所以值是乱的。
[解决办法]
int q[]={a,s,d,f,g};
printf("please input:\n");
scanf("%d,%d,%d,%d,%d\n",&a,&s,&d,&f,&g);
写成

printf("please input:\n");
scanf("%d,%d,%d,%d,%d\n",&a,&s,&d,&f,&g);
int q[]={a,s,d,f,g};
[解决办法]
printf("please input:\n");
scanf("%d,%d,%d,%d,%d\n",&a,&s,&d,&f,&g);
int q[]={a,s,d,f,g};
[解决办法]


#include <stdio.h>
int main()
{
int q[5];
printf("please input:\n");
for(int i=0; i<5 ;i++)
{
scanf("%d\n",&q[i]);
}
    printf("%d,%d,%d,%d,%d\n",q[0],q[1],q[2],q[3],q[4]);
    return 0;
}

[解决办法]
int a,s,d,f,g;

scanf("%d,%d,%d,%d,%d\n",&a,&s,&d,&f,&g);

printf("%d,%d,%d,%d,%d\n", a, s, d, f, g); 
[解决办法]
int a,s,d,f,g;
     int * q[]={&a,&s,&d,&f,&g};
     printf("please input:\n");
     scanf("%d,%d,%d,%d,%d",&a,&s,&d,&f,&g);
     printf("%d,%d,%d,%d,%d\n",*q[0],*q[1],*q[2],*q[3],*q[4]);
     return 0;
[解决办法]
对学习编程者的忠告:
眼过千遍不如手过一遍!
书看千行不如手敲一行!
手敲千行不如单步一行!
单步源代码千行不如单步对应汇编一行!

VC调试时按Alt+8、Alt+7、Alt+6和Alt+5,打开汇编窗口、堆栈窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应堆栈、内存和寄存器变化,这样过一遍不就啥都明白了吗。
对VC来说,所谓‘调试时’就是编译连接通过以后,按F10或F11键单步执行一步以后的时候,或者在某行按F9设了断点后按F5执行停在该断点处的时候。

[解决办法]
这是一个先后顺序的问题。先定义了一些变量,这些变量没有赋值,所以系统会随便的初始化,这些随便的初始化数就赋给了数组,所以数组相当于初始化了一些随便的数

热点排行