我想也应该是第一个FOR 的控制范围要一直到遇到分号为止的!
但如果是这样的话:那为什么照3楼的高手加的{}来运行又是对的?
晕~~~~
难道大家没注意到这个问题吗?
我绝不会写这样的代码。
首先,好看不是单纯的“代码好看”,而是“逻辑”好看。你的代码一眼看上去很难明白逻辑,至少我看来是这样。
代码“缩进”是很重要的,最起码明白语句的层次关系,你那些for没有缩进,看起来还以为是顺序语句,这样写只有你自已明白,而别人看却很难懂。还有你那么多if,能不能用一个表达式写出来呢?有必要写那么多if吗?
另外我强调的用花括号,是为了程序的“扩展性”,也就是对程序进行修改。
如果你要对上面的代码进行调试,你要做一些什么工作?比如你想把每次循环后的结果打印出来,你又要加多少个花括呢?难道调试完后又删掉花括?
在花括可加可不加时,有一种情况不加也好,就是代码块非常短,非常简单,也没有什么复杂的逻辑。比如一个判断后跟一个打印,这时不加也好。
还有,14楼的程序是错的,正确的是这样:
#include <stdio.h>main( )
{
int a, b, c, d, e;
for(a=1; a<=5; a++){ //a
for(b=1; b<=5; b++){ //b
if(b!=a){
for(c=1; c<=5; c++){ //c
if(c!=a && c!=b){
for(d=1; d<=5; d++){ //d
if(d!=a && d!=b && d!=c){
for(e=1; e<=5; e++){ //e
if(e!=a && e!=b && e!=c && e!=d){
printf(\"%d%d%d%d%d\t\", a, b, c, d, e);
}
}
}
}
}
}
}
}
}
getch();
}
良好的结构+易懂的注释=受欢迎的程序。