当前位置: 代码迷 >> C语言 >> [求助]可不可以看看这一韪
  详细解决方案

[求助]可不可以看看这一韪

热度:109   发布时间:2007-04-05 16:05:51.0
以下是引用aways在2007-4-5 16:02:56的发言:

在win-tc上运行出错.

不太清楚原因,可能是不能在FOR中定义变量吧,用VC++可以通过


----------------解决方案--------------------------------------------------------
6楼的可不可以再解释清楚啊..我现在好象有点明白了//可是还是不太明白..谢谢你这么认真//
为什么在里面加了个int 就又是另一种结果了??
----------------解决方案--------------------------------------------------------
因为我在复合语句中又定义了一个变量I,这个时候才是你在五楼所说的情况,而你在1楼的复合语句中没有定义变量I
----------------解决方案--------------------------------------------------------

我猜你认为第一个i只是第一个for语句,第二个i是另一个的,
这,当然不对,你定义了一个局部变量一i
他的作用域是整个main函数.
在此期间只能,而且编译器也只认为i同一个.


----------------解决方案--------------------------------------------------------
以下是引用qjcnlhnh在2007-4-5 16:04:31的发言:
你在复合语句中又没有定义变量,哪来的全局与局部之分

在函数外定义的是全局变量,作用域从定义处一直到文件结束;
局部变量在函数内部定义,作用与在函数内部.
全不全局与有没有符合语句,在符合语句中定没定义无关吧.


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

你们说得那么复杂干嘛!!不就是{for(i=1;i<5;i++)
printf("w%d",i);
} 的整体
相当于for(i=1;i<5;i++)的一个子循环嘛! 当 i=1时就执行上面{}内的内容,返回一个结果此时i=5 再代入循环中,此时已不满足条件,就退出。故只循环了一次啊!
你想要输出两个同样的结果,只需再定义一个变量就行了!


----------------解决方案--------------------------------------------------------
回复:(v1v1wang)[求助]可不可以看看这一韪

因为只进行了里面的一次循环!


----------------解决方案--------------------------------------------------------
在c中不能这样定义for (int i=1;i<5;i++)
c++好象可以的吧.那样的话两个i旧不一样了.
----------------解决方案--------------------------------------------------------
回复:(aways)在c中不能这样定义for (int i=1;i
这样定义,域作用小的i会覆盖掉域作用大的i。
----------------解决方案--------------------------------------------------------
以下是引用v1v1wang在2007-4-5 15:29:40的发言:
#include "stdio.h"
void main()
{int i;
for(i=1;i<5;i++)
{for(i=1;i<5;i++)
printf ("w%d",i);
}
}
这个结果是w1w2w3w4w5
为什么只有一次循环/////
但是我在前面定义另一个变量任意的如j
这就变成
#include "stdio.h"
void main()
{int i;j;
for(j=1;j<5;j++)
{for(i=1;i<5;i++)
printf ("w%d",i);
}
}
这样运行的结果就有了循环
希望可不可以解释一下
谢谢啊.....
结果应该是w1到w4
因为i=5时跳出循环了
至于没有双循环的原因是外循环的i和内循环的i是一样的,共同变化!!!
这样只能是以上结果了
----------------解决方案--------------------------------------------------------