投票程序 c语言

来源:百度知道 编辑:UC知道 时间:2024/09/22 20:37:16
各位高手们,我刚学C语言不久,现在实习结束,老师给我们一道题目做,但是不太会。。。请各位前辈们帮帮忙,把详细代码发上来行不?谢谢。。。

1、投票程序:设有代号为’a’,’b’,’c’的三个足球先生候选人,根据投票者在选票上对他们编号的填写顺序分别记分5,3,2。 请编程从键盘上输入投票人数及投票结果,统计他们的得分,并输出哪位当选足球先生。注意:若同一张票上写有两个相同的代号,则显示“此票无效”,若最终前两名得分相同应显示“重新投票”,否则显示三个候选者得分并输出“祝贺X当选冠军!”。
例如:投票人数:5
输入投票内容:
a b c
c a b
c a a
该票无效 !
c b a
b c a
三位候选人得分:a:8
b:11
c:15
祝贺c当选冠军!

#include<stdio.h>
main()
{int A[4]={0},d,e,f,g,B[4]={0,5,3,2};
double k;
char C[4];
scanf("%d",&d);
for(e=1;e<=d;e++)
{scanf(" %c %c %c",&C[1],&C[2],&C[3]);
if(((C[1]-'a'+1)*(C[2]-'a'+1)*(C[3]-'a'+1))!=6) {printf("该票无效\n");continue;}
for(g=1;g<=3;g++)
{switch(C[g])
{case 'a':A[1]+=B[g];break;
case 'b':A[2]+=B[g];break;
case 'c':A[3]+=B[g];break;
default:break;
}
}
}
f=1;
k=(double)(A[1]+A[2]+A[3])/3;
for(g=1;g<=3;g++)
{if(A[g]>=k) B[f++]=g;
}
if(f>=3){
if(A[B[1]]==A[B[2]]) {printf("重新投票");return 0;}
if(A[B[1]]>A[B[2]]) f=2;
else f=3;}
printf("三位候选人得分:");
for(g=1;g<=3;g++)
{printf("%c %d\n",g-1+'a',A[g]);
}
printf("祝贺%c当选冠军!&qu