四大湖



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;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值