c语言课程设计 一道题 请高手解答 不然挂科了 谢谢

来源:百度知道 编辑:UC知道 时间:2024/05/24 08:41:16
投票设计
[要求]
设有代号为’ a’,’ b',' c'的三个足球先生候选人,根据投票者在选票上对他们编号的填写顺序分别记分5,3,2。请编程从键盘输入投票人数及投票结果,统计他们的得分,并输出哪位当选足球先生。注意:若同一张票上写有两个相同的代号,则显示“此票无效”,若最终前两名得分相同应显示“重新投票”,否则显示三个候选者得分并输出“祝贺X当选冠军!”。
例如:投票人数:5
输入投票内容:
a b c
c a b
c a a 该票无效!
c b a
b c a
三位候选人得分:a:12
b:13
c:15
祝贺c当选冠军!
[提示]
数据结构可用结构体数组,结构体成员包括代号,得分。或者采用二维数组,行方向对应一张投票,列方向对应各候选人得分。

你好:

程序已经运行过,没有问题
不懂我们再讨论

#include<stdio.h>

struct people{
char index;
int grade;
}; //定义一个结构体,表示候选人,包含他的代号和得到的票数

main()
{
char piao1,piao2,piao3;//分别代表一张票的第一位,第二位和第三位

people a={'a',0},b={'b',0},c={'c',0};//定义候选人的起始状态,包含他的代号和得到的票数

int piaoshu;//总票数

printf("请输入票数,并按回车键:");

scanf("%d",&piaoshu);

printf("请输入票的内容(格式如abc):\n");

for(int i=1;i<=piaoshu;i++)
{
scanf("%c%c%c",&piao1,&piao2,&piao3);

if(piao1==piao2||piao2==piao3||piao1==piao3)//票无效时,输入下一张票

{
printf("此票无效,请输入下一张票\n");
}

else //判断每个人应该分别加几分
{
if(a.index==piao1){a.grade+=5;}
else if(b.index==piao1) {b.grade+=5;}
else if(c.index==piao1) {c.grade+=5;}

if(a.index==piao2){a.grade+=3;}
else i