|
发表于 2023-11-7 11:07:31
|
显示全部楼层
以下是用C语言for循环实现的代码:
- #include <stdio.h>
- int main() {
- int i, j, count;
- char suspect;
- for(i = 0; i < 4; i++) {
- count = 0;
- for(j = 0; j < 4; j++) {
- if(i == j) continue;
- if((i == 0 && j == 1) || (i == 1 && j == 0) || (i == 2 && j == 3) || (i == 3 && j == 2)) {
- if(suspect == 'A' || suspect == 'C') count++;
- } else if((i == 0 && j == 2) || (i == 2 && j == 0) || (i == 1 && j == 3) || (i == 3 && j == 1)) {
- if(suspect == 'B' || suspect == 'C') count++;
- } else if((i == 0 && j == 3) || (i == 3 && j == 0) || (i == 1 && j == 2) || (i == 2 && j == 1)) {
- if(suspect == 'A' || suspect == 'D') count++;
- }
- }
- if(count == 2) {
- suspect = i + 'A';
- break;
- }
- }
- printf("The criminal is %c.\n", suspect);
- return 0;
- }
复制代码
代码解释:
首先,我们使用两个for循环,分别遍历4个嫌疑人,判断每个嫌疑人所说的话是否符合题目中的条件。
对于每个嫌疑人,我们使用一个计数器count来记录他所说的话中符合条件的数量。如果count为2,那么这个嫌疑人就是罪犯。
在判断每个嫌疑人所说的话是否符合条件时,我们使用了一个if-else语句。每个if-else语句对应了题目中的一个条件。例如,if((i == 0 && j == 1) || (i == 1 && j == 0) || (i == 2 && j == 3) || (i == 3 && j == 2)) 就对应了题目中a所说的话。
在每个if-else语句中,我们使用了一个嵌套的if语句来判断当前嫌疑人是否符合条件。如果符合条件,就将计数器count加1。
最后,我们输出罪犯的编号即可。 |
|