[讨论]四大淡水湖的大小排序问题(逻辑题)
我国有四大淡水湖。A说:洞庭湖最大,洪泽湖最小,鄱阳湖第三。
B说:洪泽湖最大,洞庭湖最小,鄱阳湖第二,太湖第三。
C说:洪泽湖最小,洞庭湖第三。
D说:鄱阳湖最大,太湖最小,洪泽湖第二,洞庭湖第三。
4个人每个人仅答对了一个,请编程给出4个湖从大到小的顺序。
[此贴子已经被作者于2005-9-28 20:51:27编辑过]
附偶编的程序: /*四大淡水湖的从大到小排序*/ main() {int a,b,c,d; /*四湖的顺序数,分别表示洞庭湖,洪泽湖,鄱阳湖,太湖*/ for(a=1;a<5;a++) /*对四湖排名分别赋值*/ for(b=1;b<5;b++) for(c=1;c<5;c++) for(d=1;d<5;d++) if(a+b+c+d==10&&a*b*c*d==24) /*限定abcd的值互不相等,即不出现并列的情况*/ if(a==1&&b!=4&&c!=3||a!=1&&b==4&&c!=3||a!=1&&b!=4&&c==3) /*A的话*/ if(b==1&&a!=4&&c!=2&&d!=3||b!=1&&a==4&&c!=2&&d!=3 ||b!=1&&a!=4&&c==2&&d!=3||b!=1&&a!=4&&c!=2&&d==3) /*B的话*/ if(b==4&&a!=3||b!=4&&a==3) /*C的话*/ if(c==1&&d!=4&&b!=2&&a!=3||c!=1&&d==4&&b!=2&&a!=3 ||c!=1&&d!=4&&b==2&&a!=3||c!=1&&d!=4&&b!=2&&a==3) /*D的话*/ printf("四湖的大小顺序:\n洞庭湖:%d\n洪泽湖:%d\n鄱阳湖:%d\n太湖:%d\n",a,b,c,d);
} 觉得很不理想,谋求比这好的方法!谢谢