四大湖

来源:互联网 发布:朱孝远 知乎 编辑:程序博客网 时间:2024/04/28 17:23


2013北大《计算概论A》期中试题

【描述】

我国有4大淡水湖。

A说:洞庭湖最大,洪泽湖最小,鄱阳湖第三。

B说:洪泽湖最大,洞庭湖最小,鄱阳湖第二,太湖第三。

C说:洪泽湖最小,洞庭湖第三。

D说:鄱阳湖最大,太湖最小,洪泽湖第二,洞庭湖第三。

已知这4个湖的大小均不相等,4个人每人仅答对一个,请编程按照鄱阳湖、洞庭湖、太湖、洪泽湖的顺序给出他们的大小排名。

【输入】

【输出】

输出为4行,第1行为鄱阳湖的大小名次,从大到小名次分别表示为1234;第234行分别为洞庭湖、太湖、洪泽湖的大小名次。

【输入示例】

【输出示例】

3

2

1

4

【提示】

输出示例仅供格式参考,此题只有一个解。

C代码】

---------------

#include<stdio.h>

#include<stdlib.h>

intmain(void) {

/*代表ABCD四人说的话 */

int a, b, c, d;

/*代表鄱阳湖、洞庭湖、太湖、洪泽湖的大小名次。1最大,4最小 */

int i, j, k, m;

for(i = 1; i <= 4; ++i) {           /* 鄱阳湖 */

for(j = 1; j <= 4; ++j){         /*洞庭湖 */

if(i != j) {                 /* 大小名次不相等 */

for(k = 1; k <= 4; ++k) { /* 太湖 */

if(k != i && k != j){  /*大小名次不相等 */

m = 10 - i - j - k; /*洪泽湖 */

/* A说:洞庭湖最大,洪泽湖最小,鄱阳湖第三 */

a = (j == 1) + (m == 4) + (i == 3);

/* B说:洪泽湖最大,洞庭湖最小,鄱阳湖第二,太湖第三 */

b = (m == 1) + (j == 4) + (i == 2) + (k == 3);

/* C说:洪泽湖最小,洞庭湖第三 */

c = (m == 4) + (j == 3);

/* D说:鄱阳湖最大,太湖最小,洪泽湖第二,洞庭湖第三 */

d = (i == 1) + (k == 4) + (m == 2) + (j == 3);

if(a * b * c * d == 1) {

printf("%d\n%d\n%d\n%d\n", i, j, k, m);

exit(EXIT_SUCCESS);

                    }

}                   

}

}   

}

}

return 0;

}

0 0
原创粉丝点击