#include <string.h>
#include <stdio.h>
//存储项目成绩或院系总成绩的数据结构
struct CHENGJI{
int index;//院系的序号
char name[50];//院系名称
double score;//分数
};
//存储每个院系总成绩的数组
struct CHENGJI school[100];
int len_school=0;//院系数
char nanzi[100][100];//男项目名称列表
struct CHENGJI chengji_nanzi[100][100];//男子每个项目,每个院系的成绩
int len_nanzi=0;//男项目数
char nvzi[100][100];//女项目名称列表
struct CHENGJI chengji_nvzi[100][100];//女子每个项目,每个院系的成绩
int len_nvzi=0;//女项目数
void input(){
int i,j;
printf("请输入院系总数:");
scanf("%d",&len_school);
printf("请输入男子竞赛项目数:");
scanf("%d",&len_nanzi);
printf("请输入女子竞赛项目数:");
scanf("%d",&len_nvzi);
//输入每个院系名称
for(i=0;i<len_school;i++){
struct CHENGJI cj;
printf("请输入第 %d 个院系的名称:",i+1);
scanf("%s",cj.name);
cj.index = i;
cj.score = 0;
school[i] = cj;
}
//输入男子每个项目的名称
for(i=0;i<len_nanzi;i++){
printf("请输入第 %d 个男子竞赛项目的名称:",i+1);
scanf("%s",nanzi[i]);
}
//输入女子每个项目的名称
for(i=0;i<len_nvzi;i++){
printf("请输入第 %d 个女子竞赛项目的名称:",i+1);
scanf("%s",nvzi[i]);
}
//输入男子每个项目,每个院系的成绩
for(i=0;i<len_nanzi;i++){
for(j=0;j<len_school;j++){
struct CHENGJI cj;
strcpy(cj.name,school[j].name);
cj.index = j;
printf("请输入院系 %s, 男子项目 %s 的成绩:",school[j].name,nanzi[i]);
scanf("%lf",&cj.score);
chengji_nanzi[i][j] = cj;
}
}
//输入女子每个项目,每个院系的成绩
for(i=0;i<len_nvzi;i++){
for(j=0;j<len_school;j++){
struct CHENGJI cj;
strcpy(cj.name,school[j].name);
cj.index = j;
printf("请输入院系 %s, 女子项目 %s 的成绩:",school[j].name,nvzi[i]);
scanf("%lf",&cj.score);
chengji_nvzi[i][j] = cj;
}
}
}
//排序
void sort(){
int k,i;
//男子每个项目的成绩排序
for(k=0;k<len_nanzi;k++){
for(i=0;i<len_school;i++){
double max = -1;
int maxIndex = 0;
int j=0;
struct CHENGJI temp;
for(j=i;j<len_school;j++){
if(chengji_nanzi[k][j].score>max){
max = chengji_nanzi[k][j].score;
maxIndex = j;
}
}
temp = chengji_nanzi[k][maxIndex];
chengji_nanzi[k][maxIndex] = chengji_nanzi[k][i];
chengji_nanzi[k][i] = temp;
}
}
//女子每个项目的成绩排序
for(k=0;k<len_nvzi;k++){
for(i=0;i<len_school;i++){
double max = -1;
int maxIndex = 0;
int j=0;
struct CHENGJI temp;
for(j=i;j<len_school;j++){
if(chengji_nvzi[k][j].score>max){
max = chengji_nvzi[k][j].score;
maxIndex = j;
}
}
temp = chengji_nvzi[k][maxIndex];
chengji_nvzi[k][maxIndex] = chengji_nvzi[k][i];
chengji_nvzi[k][i] = temp;
}
}
}
//先排序,然后计算出每个院系的综合成绩
void compute(){
int i,j;
sort();
//首先每个院系的成绩设为0
for(j=0;j<len_school;j++){
school[j].score = 0;
}
//男子项目计算
for(i=0;i<len_nanzi;i++){
for(j=0;j<len_school;j++){
if(j==0){//第一名,该院系计7分
int index = chengji_nanzi[i][j].index;
school[index].score += 7;
}
if(j==1){
int index = chengji_nanzi[i][j].index;
school[index].score += 5;
}
if(j==2){
int index = chengji_nanzi[i][j].index;
school[index].score += 3;
}
if(j==3){
int index = chengji_nanzi[i][j].index;
school[index].score += 2;
}
if(j==4){
int index = chengji_nanzi[i][j].index;
school[index].score += 1;
}
}
}
//男子项目计算
for(i=0;i<len_nvzi;i++){
for(j=0;j<len_school;j++){
if(j==0){
int index = chengji_nvzi[i][j].index;
school[index].score += 7;
}
if(j==1){
int index = chengji_nvzi[i][j].index;
school[index].score += 5;
}
if(j==2){
int index = chengji_nanzi[i][j].index;
school[index].score += 3;
}
if(j==3){
int index = chengji_nanzi[i][j].index;
school[index].score += 2;
}
if(j==4){
int index = chengji_nanzi[i][j].index;
school[index].score += 1;
}
}
}
}
int main(){
int ch;
int i,j;
system("color F0");
input();
while(1){
printf("\n");
printf("1-查看参赛院系信息\n");
printf("2-查看比赛项目信息\n");
printf("3-查看院系比赛成绩\n");
scanf("%d",&ch);
switch(ch){
case 1:
for(i=0;i<len_school;i++){
printf("%s\n",school[i].name);
}
break;
case 2:
sort();
printf("男子比赛项目:\n");
for(i=0;i<len_nanzi;i++){
printf("%s:\n",nanzi[i]);
for(j=0;j<len_school;j++){
printf("%s\t%.2lf\n",chengji_nanzi[i][j].name,chengji_nanzi[i][j].score);
}
}
printf("女子比赛项目:\n");
for(i=0;i<len_nvzi;i++){
printf("%s:\n",nvzi[i]);
for(j=0;j<len_school;j++){
printf("%s\t%.2lf\n",chengji_nvzi[i][j].name,chengji_nvzi[i][j].score);
}
}
break;
case 3:
compute();
for(i=0;i<len_school;i++){
printf("%s\t%.2lf\n",school[i].name,school[i].score);
}
break;
}
}
return 0;
}
运动会
最新推荐文章于 2022-01-04 13:49:37 发布