C语言:5位运动员每人说了两句话,均有一句话正确,预测比赛结果

#include<stdio.h>
int main()
{
int A;
 
int B;
int C;
int D;
int E;
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 (((B==1)+(A==3))==1&&
((B==2)+(E==4))==1&&
((C==1)+(D==2))==1&&
((C==5)+(D==3))==1&&
(A!=B)&&(A!=C)&&(A!=D)&&
(A!=E)&&(B!=C)&&(B!=D)&&
(B!=E)&&(C!=D)&&(C!=E)&&
(D!=E)&&((E==4)+(A==1))==1)
{
printf("A=%d B=%d C=%d D=%d E=%d\n",A,B,C,D,E);
 
}
}
}
}
}
}
return 0;
}
时间: 2024-10-31 06:44:00

C语言:5位运动员每人说了两句话,均有一句话正确,预测比赛结果的相关文章

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

5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果A选手说:B第一,我第三.B选手说:我第二,E第四.C选手说:我第一,D第二.D选手说:C最后,我第三.E选手说:我第四,A第一.比赛结束后,每位选手都说对了一半,请编程确定比赛的名次. 初次见到这种题,感觉很难将其抽象出来 用编程来解决它,通过查阅相关文档,终于灵光乍现!现总结思路如下: 通过排列组合知识,可以这样来理解  A B C D E五个人,每个人分别可以有五个位置去 即第一 第二...到第五 5个位置 ,于是这样下来就有25种情

c语言:2种方法:5位运动员参加跳水比赛,每位选手都说对一半,请确定比赛名次

5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果 A选手说:B第一,我第三. B选手说:我第二,E第四. C选手说:我第一,D第二. D选手说:C最后,我第三. E选手说:我第四,A第一. 比赛结束后,每位选手都说对了一半,请编程确定比赛的名次. 程序一: #include<stdio.h> int main() { int a = 1, b = 1,c = 1,d=1,e=1; for (a = 1; a <= 5; a++) { for (b = 1; b <= 5; 

C语言实现之运动员跳水名次问题

5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果A选手说:B第一,我第三.B选手说:我第二,E第四.C选手说:我第一,D第二.D选手说:C最后,我第三.E选手说:我第四,A第一.比赛结束后,每位选手都说对了一半,请编程确定比赛的名次. 代码实现: #include <stdio.h> int main() {  int a=0,b=0,c=0,d=0,e=0;  int flag=0;  int ret=0;  for(a=1;a<=5;a++)  {   for(b=1;b&l

5位运动员参加了10米台跳水比赛,每位选手都说对了一半,请编程确定比赛的名次

5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果A选手说:B第一,我第三.B选手说:我第二,E第四.C选手说:我第一,D第二.D选手说:C最后,我第三.E选手说:我第四,A第一. 比赛结束后,每位选手都说对了一半,请编程确定比赛的名次. #include <stdio.h> int main(){  int a,b,c,d,e;  for(a=1;a<=5;a++)       for(b=1;b<=5;b++)            for(c=1;c<=5;c++

跳水运动员预测比赛结果排名次问题

5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果 A选手说:B第一,我第三. B选手说:我第二,E第四. C选手说:我第一,D第二. D选手说:C最后,我第三. E选手说:我第四,A第一. 比赛结束后,每位选手都说对了一半,请编程确定比赛的名次. 可以并列: #include<stdio.h> #include<stdlib.h> main() { int a, b, c, d, e = 0; int flag=0; for (a = 1; a < 6; a++) {

【学习笔记】【C语言】位运算

1. & 按位与 1> 功能 只有对应的两个二进位均为1时,结果位才为1,否则为0. 2> 举例: 比如9&5,其实就是1001&101=1,因此9&5=1 3> 规律 二进制中,与1相&就保持原位,与0相&就为0 2. | 按位或 1> 功能 只要对应的二个二进位有一个为1时,结果位就为1,否则为0. 2> 举例: 比如9|5,其实就是1001|101=1101,因此9|5=13 3. ^ 按位异或 1> 功能 当对应的

IOS开发学习记录第9天之C语言学习-----位运算

一.位运算介绍 1.运算符:& | ^ ~ << >> 用途: 直接操作二进制,省内存,效率高. 注意 只能用于整型操作数(char ,short,int ,long) 运算规则: 1)& 按位与 全1才1 否则0 : 只有对应的两个二进位均为1时,结果位才为1,否则为0 用6和3这个例子. #include <stdio.h> int main(int argc, const char * argv[]) { //定义两个整型变量,分别对其做按位与.按

多态 这是动态语言和静态语言(例如Java)最大的差别之一。动态语言调用实例方法,不检查类型,只要方法存在,参数正确,就可以调用。

多态 类具有继承关系,并且子类类型可以向上转型看做父类类型,如果我们从 Person 派生出 Student和Teacher ,并都写了一个 whoAmI() 方法: class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender def whoAmI(self): return 'I am a Person, my name is %s' % self.name clas

C语言中存储多个字符串的两种方式

C语言中存储多个字符串的两种方式 方式一    二维字符串数组 声明: char name[4][10] = { "Justinian", "Momo", "Becky", "Bush" }; 在内存中的存储: J u s t i n i a n \0 M o m o \0 \0 \0 \0 \0 \0 B e c k y \0 \0 \0 \0 \0 B u s h \0 \0 \0 \0 \0 \0 这种方式会造成内存空间