以下是引用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#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);
}
}
这样运行的结果就有了循环
希望可不可以解释一下
谢谢啊.....
因为i=5时跳出循环了
至于没有双循环的原因是外循环的i和内循环的i是一样的,共同变化!!!
这样只能是以上结果了
----------------解决方案--------------------------------------------------------