如何通过手把手教学猜出比赛名次和谁是凶手?

2026-04-11 22:301阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1463个文字,预计阅读时间需要6分钟。

如何通过手把手教学猜出比赛名次和谁是凶手?

c完整代码+代码名int main() { int a=0; int b=0; int c=0; int d=0; int e=0; for(a=1; a <=5; a++) { for(b=1; b <=5; b++) { for(c=1; c <=5; c++) { for(d=1; d <=5; d++) { for(e=1; e <=5; e++) { if((a==3) && (b==2)==1 && (b==2) && (e==2)) { // 代码逻辑 } } } } } } return 0;}

完整代码

猜名次 int main() { int a = 0; int b = 0; int c = 0; int d = 0; int e = 0; for(a = 1; a <= 5; a++) { for(b = 1; b <= 5; b++) { for(c = 1; c <= 5; c++) { for(d = 1; d <= 5; d++) { for(e = 1; e <= 5; e++) { if((a == 3) + (b == 2) == 1 && (b == 2) + (e == 4) == 1 && (c == 1) + (d == 2) == 1 && (c == 5) + (d == 3) == 1 && (e == 4) + (a == 1) == 1 && a * b * c * d * e == 120) { printf("A=%d B=%d C=%d D=%d E=%d ", a, b, c, d, e); } } } } } }

猜凶手 #include <stdio.h> int main() { char killer = 0; for(killer = 'A'; killer <= 'D'; killer++) { if((killer != 'A') + (killer == 'C') + (killer == 'D') + (killer != 'D') == 3) { printf("犯人是%c", killer); } } return 0; }

@TOC

猜名次

题目介绍:

5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果:

如何通过手把手教学猜出比赛名次和谁是凶手?

A选手说:B第二,我第三;

B选手说:我第二,E第四;

C选手说:我第一,D第二;

D选手说:C最后,我第三;

E选手说:我第四,A第一;

比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。

做题思路

遍历所有种可能

假设所有位置所有情况都试过了,只需要把满足的那个情况打印出来就可以了,让所有人都当过第一名到第五名。

int main() { int a = 0; int b = 0; int c = 0; int d = 0; int e = 0; for(a = 1; a <= 5; a++) { for(b = 1; b <= 5; b++) { for(c = 1; c <= 5; c++) { for(d = 1; d <= 5; d++) { for(e = 1; e <= 5; e++) { 。。。。。。 } } } } } }

设置判断条件

题目中的这句“每位选手都说对了一半”是做题的关键 说对了一半,也就变相告诉我们每位选手说的话一半为真,一半为假。 我们都知道,1为真,0为假; 所以对单个选手进行判断:(前半句话)+(后半句话)== 1; 对于多个选手进行判断就只需要用&&进行连接即可

if((a == 3) + (b == 2) == 1 && (b == 2) + (e == 4) == 1 && (c == 1) + (d == 2) == 1 && (c == 5) + (d == 3) == 1 && (e == 4) + (a == 1) == 1

设置限制条件

根据上面的情况,我们可以找出符合条件的配对,但是这样真的就已经完美了吗? 例如:A 第一名 B 第二名 C 第一名 D 第三名 E 第一名 这个配对也是可以满足判断条件的,但是根据常理分析,第一名到第五名的拥有者只能是唯一的。 所以我们可以知道,配对的基础就是: 一个第一名 一个第二名 一个第三名 一个第四名 一个第五名 所有的名次进行相乘的话,要满足:A * B * C * D * E == 120; 条件补充如下

if((a == 3) + (b == 2) == 1 && (b == 2) + (e == 4) == 1 && (c == 1) + (d == 2) == 1 && (c == 5) + (d == 3) == 1 && (e == 4) + (a == 1) == 1 && a * b * c * d * e == 120)

将以上所有的要素结合起来之后,就可以得到以下完整代码:

int main() { int a = 0; int b = 0; int c = 0; int d = 0; int e = 0; for(a = 1; a <= 5; a++) { for(b = 1; b <= 5; b++) { for(c = 1; c <= 5; c++) { for(d = 1; d <= 5; d++) { for(e = 1; e <= 5; e++) { if((a == 3) + (b == 2) == 1 && (b == 2) + (e == 4) == 1 && (c == 1) + (d == 2) == 1 && (c == 5) + (d == 3) == 1 && (e == 4) + (a == 1) == 1 && a * b * c * d * e == 120) { printf("A=%d B=%d C=%d D=%d E=%d ", a, b, c, d, e); } } } } } } return 0; }

猜凶手

题目介绍:

日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。

以下为4个嫌疑犯的供词:

A说:不是我。

B说:是C。

C说:是D。

D说:C在胡说

已知3个人说了真话,1个人说的是假话。

现在请根据这些信息,写一个程序来确定到底谁是凶手。

遍历所有种可能

如果要找出谁是凶手,那么只要让所有人都当一次凶手,然后找出那个满足所有条件的人,那个人就是凶手。

char killer = 0; for(killer = 'A'; killer <= 'D'; killer++) { 。。。。。。 }

设置判断条件

根据题目所说的“已知3个人说了真话,1个人说的是假话。” 可以间接的告诉我们:这四个人的话有三个为真,一个为假 又因为1为真,0为假 所有可以得出以下判断

if((killer != 'A') + (killer == 'C') + (killer == 'D') + (killer != 'D') == 3) { printf("犯人是%c", killer); }

结合以上元素后,可以得到以下的完整代码:

#include <stdio.h> int main() { char killer = 0; for(killer = 'A'; killer <= 'D'; killer++) { if((killer != 'A') + (killer == 'C') + (killer == 'D') + (killer != 'D') == 3) { printf("犯人是%c", killer); } } return 0; }

分享到这里就结束了,如果本文哪里有错误,还请大家指出,请在评论区留言; 如果觉得有用的话,还请给个免费的赞,灰常感谢捏!

本文共计1463个文字,预计阅读时间需要6分钟。

如何通过手把手教学猜出比赛名次和谁是凶手?

c完整代码+代码名int main() { int a=0; int b=0; int c=0; int d=0; int e=0; for(a=1; a <=5; a++) { for(b=1; b <=5; b++) { for(c=1; c <=5; c++) { for(d=1; d <=5; d++) { for(e=1; e <=5; e++) { if((a==3) && (b==2)==1 && (b==2) && (e==2)) { // 代码逻辑 } } } } } } return 0;}

完整代码

猜名次 int main() { int a = 0; int b = 0; int c = 0; int d = 0; int e = 0; for(a = 1; a <= 5; a++) { for(b = 1; b <= 5; b++) { for(c = 1; c <= 5; c++) { for(d = 1; d <= 5; d++) { for(e = 1; e <= 5; e++) { if((a == 3) + (b == 2) == 1 && (b == 2) + (e == 4) == 1 && (c == 1) + (d == 2) == 1 && (c == 5) + (d == 3) == 1 && (e == 4) + (a == 1) == 1 && a * b * c * d * e == 120) { printf("A=%d B=%d C=%d D=%d E=%d ", a, b, c, d, e); } } } } } }

猜凶手 #include <stdio.h> int main() { char killer = 0; for(killer = 'A'; killer <= 'D'; killer++) { if((killer != 'A') + (killer == 'C') + (killer == 'D') + (killer != 'D') == 3) { printf("犯人是%c", killer); } } return 0; }

@TOC

猜名次

题目介绍:

5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果:

如何通过手把手教学猜出比赛名次和谁是凶手?

A选手说:B第二,我第三;

B选手说:我第二,E第四;

C选手说:我第一,D第二;

D选手说:C最后,我第三;

E选手说:我第四,A第一;

比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。

做题思路

遍历所有种可能

假设所有位置所有情况都试过了,只需要把满足的那个情况打印出来就可以了,让所有人都当过第一名到第五名。

int main() { int a = 0; int b = 0; int c = 0; int d = 0; int e = 0; for(a = 1; a <= 5; a++) { for(b = 1; b <= 5; b++) { for(c = 1; c <= 5; c++) { for(d = 1; d <= 5; d++) { for(e = 1; e <= 5; e++) { 。。。。。。 } } } } } }

设置判断条件

题目中的这句“每位选手都说对了一半”是做题的关键 说对了一半,也就变相告诉我们每位选手说的话一半为真,一半为假。 我们都知道,1为真,0为假; 所以对单个选手进行判断:(前半句话)+(后半句话)== 1; 对于多个选手进行判断就只需要用&&进行连接即可

if((a == 3) + (b == 2) == 1 && (b == 2) + (e == 4) == 1 && (c == 1) + (d == 2) == 1 && (c == 5) + (d == 3) == 1 && (e == 4) + (a == 1) == 1

设置限制条件

根据上面的情况,我们可以找出符合条件的配对,但是这样真的就已经完美了吗? 例如:A 第一名 B 第二名 C 第一名 D 第三名 E 第一名 这个配对也是可以满足判断条件的,但是根据常理分析,第一名到第五名的拥有者只能是唯一的。 所以我们可以知道,配对的基础就是: 一个第一名 一个第二名 一个第三名 一个第四名 一个第五名 所有的名次进行相乘的话,要满足:A * B * C * D * E == 120; 条件补充如下

if((a == 3) + (b == 2) == 1 && (b == 2) + (e == 4) == 1 && (c == 1) + (d == 2) == 1 && (c == 5) + (d == 3) == 1 && (e == 4) + (a == 1) == 1 && a * b * c * d * e == 120)

将以上所有的要素结合起来之后,就可以得到以下完整代码:

int main() { int a = 0; int b = 0; int c = 0; int d = 0; int e = 0; for(a = 1; a <= 5; a++) { for(b = 1; b <= 5; b++) { for(c = 1; c <= 5; c++) { for(d = 1; d <= 5; d++) { for(e = 1; e <= 5; e++) { if((a == 3) + (b == 2) == 1 && (b == 2) + (e == 4) == 1 && (c == 1) + (d == 2) == 1 && (c == 5) + (d == 3) == 1 && (e == 4) + (a == 1) == 1 && a * b * c * d * e == 120) { printf("A=%d B=%d C=%d D=%d E=%d ", a, b, c, d, e); } } } } } } return 0; }

猜凶手

题目介绍:

日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。

以下为4个嫌疑犯的供词:

A说:不是我。

B说:是C。

C说:是D。

D说:C在胡说

已知3个人说了真话,1个人说的是假话。

现在请根据这些信息,写一个程序来确定到底谁是凶手。

遍历所有种可能

如果要找出谁是凶手,那么只要让所有人都当一次凶手,然后找出那个满足所有条件的人,那个人就是凶手。

char killer = 0; for(killer = 'A'; killer <= 'D'; killer++) { 。。。。。。 }

设置判断条件

根据题目所说的“已知3个人说了真话,1个人说的是假话。” 可以间接的告诉我们:这四个人的话有三个为真,一个为假 又因为1为真,0为假 所有可以得出以下判断

if((killer != 'A') + (killer == 'C') + (killer == 'D') + (killer != 'D') == 3) { printf("犯人是%c", killer); }

结合以上元素后,可以得到以下的完整代码:

#include <stdio.h> int main() { char killer = 0; for(killer = 'A'; killer <= 'D'; killer++) { if((killer != 'A') + (killer == 'C') + (killer == 'D') + (killer != 'D') == 3) { printf("犯人是%c", killer); } } return 0; }

分享到这里就结束了,如果本文哪里有错误,还请大家指出,请在评论区留言; 如果觉得有用的话,还请给个免费的赞,灰常感谢捏!