一个比赛成绩输出问题
有A,B,C,D,E5个学校进行比赛,各学校单项成绩已存入计算机,表中每行形式为:项目名称 性别 校名 成绩 得分
编写算法,统计各学校男女总分和团体总分,并输出。
我的问题是我编写了程序,但不知道该把已知成绩放哪,该如何放,请帮我看一下,谢谢
#include <stdio.h>
#define NULL 0
void main(){
typedef struct{
char *sports;
enum{FEMALE,MALE} gender;
char school;
char result;
int score;
}Component;
typedef struct{
int malesum;
int femalesun;
int totalsum;
}Sum;
void summary(Component result[]){
Sum score[];
int i=0;
while(result[i].sports!=NULL){
case 'A ':
score[ 0 ].totalsum+=result[i].score;
if(result[i].gender==0) score[ 0 ].malesum+=result[i].score;
else score[ 0 ].femalesum+=result[i].score;
break;
case 'B ':
score[ 1 ].totalsum+=result[i].score;
if(result[i].gender==0) score[ 1 ].malesum+=result[i].score;
else score[ 1 ].femalesum+=result[i].score;
break;
case 'C ':
score[ 2 ].totalsum+=result[i].score;
if(result[i].gender==0) score[ 2 ].malesum+=result[i].score;
else score[ 2 ].femalesum+=result[i].score;
break;
case 'D ':
score[ 3 ].totalsum+=result[i].score;
if(result[i].gender==0) score[ 3 ].malesum+=result[i].score;
else score[ 3 ].femalesum+=result[i].score;
break;
case 'E ':
score[ 4 ].totalsum+=result[i].score;
if(result[i].gender==0) score[ 4 ].malesum+=result[i].score;
else score[ 4 ].femalesum+=result[i].score;
break;
}
i++;
}
for(i=0;i <5;i++){
printf( "School%d:\n ",i);
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 ",score[i].totalscore);
}
}
[解决办法]
要看是否要求把这些输入数据存贮使用了,如果需要存储那么你要考虑把这些数据写文件了。用的时候再从文件中读取出来;如果不考虑数据存储就简单了,链表和数组均可。数组可以是结构体数组。