c程序问题,假设有A、B、C、D、E五个高等院校进行田径对抗赛, 各院校的单项成绩均以存入计算机并构成一张0
请修改程序,请解释枚举值的输入。
#include
typedef enum {female,male} Sex;
typedef struct {
char sport; // 项目名称
Sex gender; // 性别(女:female;男:male)
char schoolname; // 校名为'A','B','C','D'或'E'
char *result; // 成绩
int score; // 得分(7,5,4,3,2或1)
}ResultType;
typedef struct{
int malescore; // 男子总分
int femalescore; // 女子总分
int totalscore; // 男女团体总分
} ScoreType;
void Scores(ResultType *result, ScoreType *score)
{
int i=0;
while(result[i].sport!=NULL)
{
switch(result[i].schoolname)
{
case'A':
score[0].totalscore+=result[i].score;
if(result[i].gender==male)
score[0].malescore+=result[i].score;
else
score[0].femalescore+=result[i].score;
break;
case'B':
score[1].totalscore+=result[i].score;
if(result[i].gender==male)
score[1].malescore+=result[i].score;
else
score[1].femalescore+=result[i].score;
break;
case'C':
score[2].totalscore+=result[i].score;
if(result[i].gender==male)
score[2].malescore+=result[i].score;
else
score[2].femalescore+=result[i].score;
break;
case'D':
score[3].totalscore+=result[i].score;
if(result[i].gender==male)
score[3].malescore+=result[i].score;
else
score[3].femalescore+=result[i].score;
break;
case'F':
score[4].totalscore+=result[i].score;
if(result[i].gender==male)
score[4].malescore+=result[i].score;
else
score[4].femalescore+=result[i].score;
break;
}
i++;
}
}
main()
{
int i,n;
ResultType result[100];
ScoreType score[100];
printf("请输入各院校参赛的总人数:");
scanf("%d",&n);
printf("请输入各院校运动员的项目名称、性别、校名、成绩、得分:\n");
for(i=0;i
{
printf("运动员%d:\n",i+1);
scanf("%s%d%s%s%d",result[i].sport,result[i].gender,
result[i].schoolname,result[i].result,result[i].score);
}
Scores(result,score);
for(i=0;i<5;i++)
{
printf("the school %s: ", result[i].schoolname) ;
printf("Total score of male:%d\n",score[i].malescore);
printf("Total score of female:%d\n",score[i].femalescore);
printf("Total score of all:%d\n\n",score[i].totalscore);
}
}