这样还是太麻烦了
一个if语句搞这么麻烦
我问这个问题是缘于我解了一道题目
题目是:
问题的提出:四位分别来自中国、美国、俄罗斯、加拿大的小学生都以自己的国土面积大而骄傲不已,
//但是他们想知道到底谁的国土最大,谁的最小,他们的判断如下:
//加拿大学生:加拿大最大,美国最小,俄罗斯第三。
//美国学生:美国最大,加拿大最小,俄罗斯第二,中国第三。
//中国学生:美国最小,加拿大第三。
//他们互不相让,最后老师下定结论:对于上述四国面积的判断,他们每人只判断对了一个国家。对于
//老师的提示,四位小学生还是绞尽脑汁推断不出到底是谁的国土最大,谁的最小!现请编制程序告诉
//四位小学生正确顺序。
我的答案是:
#include<iostream.h>
main()
{
int China,America,Rassian,Canada;
for(China=1; China<=4; China++)
for(America=1; America<=4; America++)
for(Rassian=1; Rassian<=4; Rassian++)
for(Canada=1; Canada<=4; Canada++)
if( (Canada==1)+(America==4)+(Rassian==3)==1
//加拿大学生说法
&& (America==1)+(Canada==4)+(Rassian==2)+(China==3)==1
//美国学生说法
&& (America==4)+(Canada==3)==1
//中国学生说法
&& China!=America && China!=Rassian && China!=Canada && America!=Rassian && Rassian!=Canada && America!=Canada )
//四国各不相同
{
cout<<"China:No."<<China<<endl;
cout<<"America:No."<<America<<endl;
cout<<"Rassian:No."<<Rassian<<endl;
cout<<"Canada:No."<<Canada<<endl;
}
}
其中这个4国各不相同的条件语句让我写烦了
但是如果说放到数组中
无疑增加的程序的复杂度和可读性