永发信息网

C语言程序问题,C语言高手进

答案:4  悬赏:50  手机版
解决时间 2021-01-25 03:06
C语言程序问题,C语言高手进
最佳答案
//你这题目太好玩了,我自己把赛车改到12辆,8个专家,哈哈,好玩
//拿分来吧
#include
#include

int peA,peB,peC,peD; //定义专家
int num; //定义几专家说对了

int bestcar (int n) //是最好的赛车函数
{
if (n>0 && n<5) return n;
return 0;
}

int nbestcar (int n) //不是最好的赛车函数
{
if (n>0 && n<5) return -n;
return 0;
}

int right (char c) //谁说的对函数
{
if (c=='A') return peA;
if (c=='B') return peB;
if (c=='C') return peC;
if (c=='D') return peD;
return 0;
}

int error (char c) //谁说的不对函数
{
if (c=='A') return -peA;
if (c=='B') return -peB;
if (c=='C') return -peC;
if (c=='D') return -peD;
return 0;
}

void main ()
{
int i,tmp;

//初始化就在这里
num=1; //有1为专家说的对
peA=bestcar(2); //专家A说赛车2最好
peB=bestcar(4); //专家B说赛车4最好
peC=nbestcar(3); //专家C说赛车3不是最好
peD=error('B'); //专家D说B说的不对

if (peA==0) { printf("专家A在胡说八道\n"); exit(1); }
if (peB==0) { printf("专家B在胡说八道\n"); exit(1); }
if (peC==0) { printf("专家C在胡说八道\n"); exit(1); }
if (peD==0) { printf("专家D在胡说八道\n"); exit(1); }

printf("The best car is : car");
for (i=1;i<5;i++) //核心算法就在这里,i是赛车,判断专家对错,tmp计数和num比较
{
tmp=0;
if (peA==i) tmp+=1;
if (peB==i) tmp+=1;
if (peC==i) tmp+=1;
if (peD==i) tmp+=1;
if ( peA<0 && (peA+i != 0) ) tmp+=1;
if ( peB<0 && (peB+i != 0) ) tmp+=1;
if ( peC<0 && (peC+i != 0) ) tmp+=1;
if ( peD<0 && (peD+i != 0) ) tmp+=1;
if (tmp==num) printf("%d",i);
}
printf("\n");
}
全部回答
首先你得理清题目的思绪:1假设A对的话,CD选项和题意相矛盾,所以得出2号赛车不是最好的。2假设B对的话,C选项和题意也相矛盾,所以得出4号赛车也不是最好的。3假设C对的话,D选项和BD选项相互矛盾,所以得出4号赛车也不是最好的。4假设D对的话,得出3号赛车是最好的。所以得出结论:D说真话,3号赛车是最好的。
你需要的程序是结合这个例子输出3号赛车的编号还是只要求输出3号赛车编号?
自己写的,希望帮到你:
#include

void main()
{
int view[4][4];
int result[4] = {0};//result[i]存储第i+1辆车的专家意向统计结果
int car;
int j = 0;
//view[i][j]分别存储第i个专家的第j个意向车编号,如果这个值为零,表明该专家意向结束
view[0][0] = 2;
view[0][1] = 0;
view[1][0] = 4;
view[1][1] = 0;
view[2][0] = 1;
view[2][1] = 2;
view[2][2] = 4;
view[2][3] = 0;
view[3][0] = 1;
view[3][1] = 2;
view[3][2] = 3;
view[3][3] = 0;
//统计每辆车的专家意向总和
for(car=1; car <=4; car++)
{
j = 0;
while(view[car-1][j])
{
result[view[car-1][j]-1]++;
j++;
}
}
//因为只有一个专家的说法是对的,所以专家意向和是1的车辆才是所求
for(car = 1; car <= 4; car++)
{
if(result[car-1] == 1)
{
printf("%d is the best car\n", car);
break;//因为只有一辆车是最好的,所以可直接结束判断
}
}
}
期待中
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
兰州大学体育场地址有知道的么?有点事想过去
6s 和 6s plus 处理器有差异吗
欧洲共同体建立于A. 1951年B. 1958年C. 1965
为什么Mac不能复制拷贝文件到U盘
彩礼钱6万多么?男朋友家说给四万,我们这边
无限流量的话,哪个套餐比较划算,求步行街大
什么叫融资上市什么叫项目融资什么叫非法融资
有签南京中央商场的吗,本科应届毕业生起薪大
.手机怎样才查到老公在什么地方
我贴的膜刚一天,被别人一下开到底,然后关上
鸿运客栈2地址好找么,我有些事要过去
请问去美国的行李可以带灵芝和香菇吗
男,36岁。不慎跌入热水池中烫伤臀部及双下肢
八仙过海刺绣应该摆在什么地方
人民币四伟人百元钞票现在时价
推荐资讯
快件运营人在申请办理出入境快件报检时,须提
They piay basketball on Saturdays 改现在时
QQ三国结为情侣要做什么任务
旺达货运(京沈南线公路与厂前路交叉口西南150
生源地助学贷款,在我毕业后可以一次性还清吗
莱芜市钢城区颜庄镇北官庄村幼儿园怎么去啊,
勇者斗恶龙3推石头得干渴壶怎么推啊
在中华人民共和国境内从事公路的规划、建设、
算命里的注意车关是什么意思?
汽车右门大约长有10公分宽3公分的凹痕 表面少
猴年起名杨欣彤打分
我们之所以要养成团结合作的品质,这是因为①
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?