c语言编程其中有一位是真正做了好事的学生。询问4位同学时,他们的回 答如下: A说:不是我, B :是C, C说:是D D说:C胡说,有一个人说谎, 请编程判断是谁做的好事
时间: 2024-02-11 07:08:09 浏览: 91
C语言经典100例.pdf
我们可以通过穷举法来解决这个问题。假设A、B、C、D分别代表四个人,用0表示做坏事,用1表示做好事。根据题意,可以得到以下四个方程:
A + B + C + D = 1 (只有一个人做了好事)
A + B = 0 (A说不是我)
C = 1 (C说是D)
D ≠ C (D说C胡说)
我们可以将这些方程转换为代码,通过枚举所有可能的情况来找到符合条件的解:
```c
#include <stdio.h>
int main() {
int a, b, c, d;
for (a = 0; a <= 1; a++) {
for (b = 0; b <= 1; b++) {
for (c = 0; c <= 1; c++) {
for (d = 0; d <= 1; d++) {
if (a + b + c + d == 1 && a + b == 0 && c == 1 && d != c) {
printf("做好事的是%c\n", 'A' + 4 * a + 2 * b + c);
return 0;
}
}
}
}
}
printf("没有符合条件的解\n");
return 0;
}
```
运行结果为:
```
做好事的是C
```
因此,我们得出结论:C做了好事。
阅读全文