一道简单的c语言题目

来源:百度知道 编辑:UC知道 时间:2024/05/11 02:03:20
有A,B,C,D四个足球队参加比赛,有甲乙丙丁四人进行预测,甲说:A队第一,c队第三。乙说:b队第三,c队第二。丙说:a队第二,c队第三。丁说:c队第一,d队第三。
结果出来发现每人只对了一半,请问最后的结果是什么。
请用c语言写出。

我们先把文字语言转换为我们的编程语言:
对甲来说:(a==1 && c!=3) || (a!=1 && c==3)
对乙来说:(b==3 && c!=2) || (b!=3 && c==2)
对丙来说:(a==2 && c!=3) || (a!=2 && c==3)
对丁来说:(c==1 && d!=3) || (c!=1 && d==3)
由于他们的话当中,只有一半是对的,不能多也不能少,所以只要这四个语句同时成立就可以找到答案

所以实现程序如下:
#include "stdio.h"

main()
{
int a,b,c,d;
int output = 1;
for(a=1;a<5;a++)
{
for(b=1;b<5;b++)
{
for(c=1;c<5;c++)
{
for(d=1;d<5;d++)
{
if(((a==1 && c!=3) || (a!=1 && c==3))&&((b==3 && c!=2) || (b!=3 && c==2))&&((a==2 && c!=3) || (a!=2 && c==3))&&((c==1 && d!=3) || (c!=1 && d==3)))
{
output = 0; //用来控制是停止循环
break; //如果找到合适的给我停止循环,而不是continue;因为我们都知道,结果就只有一个,所以不必要把它全部执行完,下同
}
else
continue;
}