满意答案
czpcj2009
2013.04.22
采纳率:42% 等级:12
已帮助:20136人
楼主,建议你将for循环前面对a,b,c赋值的三条语句拿到循环内部去再试试。
出现这种情况其实是前面那三个赋值语句写的有问题。如果你是在vc++6.0下用debug模式,则未初始化的变量会具有统一的初值0xcccccccc,这样A==B==C,所以a值就是1,而b,c都是0。(其他的编译系统我不太清楚,有可能是随机的一个值吧,那样你的问题对三人的表述就变质了)然后带入循环体,虽然A,B,C的值一直在变化,但是始终没再同步更新a,b,c的值,而在这个范围内问题是无解的。循环结束是因为ABC的值到达了边界,然后程序就把结束时的BC值输了出来。
从输出上看,你的系统是把ABC变成C
怀疑楼主的复合语句没学好,按照你这个写法,if只和后面的第一个分号之前结合,一起作为循环体的内容(此时循环体马上要判断条件并跳出),那么后两个cout就被排挤出循环体了。
贴上这个程序,不知道是否符合你的意思:
#include
using namespace std;
int main(){
int A,B,C;
int a,b,c;
for(A=1;A<=3;A++)
for(B=1;B<4;B++)
for(C=1;C<4;C++){
a=((B>A)+(C==A));
b=((A>B)+(A>C));
c=((C>B)+(B>A));
if(((A>B&&ab))
+((A>C&&ac))
+((Bc)||(B>C&&b
cout<
cout<
cout<
}
}
return 0;
}
20分享举报