当前位置: 代码迷 >> C语言 >> [问题已解决][求助] why???
  详细解决方案

[问题已解决][求助] why???

热度:184   发布时间:2006-07-16 15:51:57.0
[问题已解决][求助] why???
main()
{ int a[10],i,b,c;
printf("enter the array:\n");
for(i=0;i<3;i++);
scanf("%d",&a[i]);
a[3]=4;
b=a[i--];
c=a[i];
printf("%d,%d\n",b,c);
}
如果输入a[0]=5,a[1]=8,a[2]=6
所以b=a[3]=4, 那么c=?

我觉得 c=a[2]=6,可是运行后的结果是:b=4,c=1187 这是为什么啊???

[此贴子已经被作者于2006-7-16 16:41:14编辑过]

搜索更多相关的解决方案: why  

----------------解决方案--------------------------------------------------------
for(i=0;i<3;i++);
scanf("%d",&a[i]);
a[3]=4;

你不设计输入数字的吗? 怎么又将4赋值给a[3]呢?

----------------解决方案--------------------------------------------------------

for(i=0;i<3;i++); //这里的分号去掉 才能执行 scanf("%d",&a[i])

如果是笔误 结果是你对 b=4,c=6 编译器错


----------------解决方案--------------------------------------------------------
for(i=0;i<3;i++);

==>
for(i=0;i<3;i++)

----------------解决方案--------------------------------------------------------
以下是引用Sally_SJL在2006-7-16 15:51:57的发言:
main()
{ int a[10],i,b,c;
printf("enter the array:\n");
for(i=0;i<3;i++); //这边怎么多了个分号。空循环呀。直接出来i=3
scanf("%d",&a[i]); //所以这边的i就是3,下面基本乱了。输入也有问题。!
a[3]=4;
b=a[i--];
c=a[i];
printf("%d,%d\n",b,c);
}
如果输入a[0]=5,a[1]=8,a[2]=6
所以b=a[3]=4, 那么c=?

我觉得 c=a[2]=6,可是运行后的结果是:b=4,c=1187 这是为什么啊???



哇。你这个问题不小呢。


----------------解决方案--------------------------------------------------------
以下是引用canon787在2006-7-16 16:00:36的发言:
for(i=0;i<3;i++);
scanf("%d",&a[i]);
a[3]=4;

你不设计输入数字的吗? 怎么又将4赋值给a[3]呢?

for(i=0;i<3;i++);
scanf("%d",&a[i]);
只能到a[2]为止,当i=3时,退出循环
而我想知道的是,b=a[i--]; 之后这时b和c的值?所以再另外赋值给a[3]
c=a[i];


----------------解决方案--------------------------------------------------------
b=a[i--];

----------------解决方案--------------------------------------------------------
b=a[i--]; ===> i = 3
c=a[i]; ====> i = 2

----------------解决方案--------------------------------------------------------
楼上正解。。。
----------------解决方案--------------------------------------------------------
以下是引用Sally_SJL在2006-7-16 16:11:33的发言:

for(i=0;i<3;i++); // 你这里有个分号,就错了。
scanf("%d",&a[i]);
只能到a[2]为止,当i=3时,退出循环
而我想知道的是,b=a[i--]; 之后这时b和c的值?所以再另外赋值给a[3]
c=a[i];

你的应该 把for() 后面的分号 去了。
然后,你b=a[2];c=a[1];


----------------解决方案--------------------------------------------------------
  相关解决方案