更新 '1.c'

This commit is contained in:
xtaodada 2022-03-06 03:20:25 -05:00
parent 9114af76e0
commit b1f1776435

69
1.c
View File

@ -1,6 +1,7 @@
#include<stdio.h> #include<stdio.h>
#include<stdlib.h> #include<stdlib.h>
#include<conio.h> #include<conio.h>
#include<string.h>
#define MAX 100 #define MAX 100
#define MAX_1 100 #define MAX_1 100
typedef struct singer{ typedef struct singer{
@ -93,7 +94,49 @@ void load(SING sing[MAX], int *num, int *num_){
// 关闭文件 // 关闭文件
fclose(fp); fclose(fp);
} }
void aver(SING sing[MAX], int num, int num_){
int temp,data[MAX_1];
for(int k=0;k<num;k++){
memcpy(data,sing[k].score,sizeof(int)*MAX_1);
// 对分数按从小到大排序
for(int i=0;i<num_-1;i++){
for(int j=0;j<num_-1-i;j++){
if(data[j]>data[j+1]){
// 交换元素
temp=data[j];
data[j]=data[j+1];
data[j+1]=temp;
}
}
}
// 计算平均分
temp=0;
for(int j=1;j<num_-1;j++){
temp+=data[j];
}
sing[k].aver = temp / (float)(num_-2);
}
}
void mark(SING sing[MAX], int num, int *num_){
// 输入评委个数
printf("请输入评委个数:");
scanf("%d",num_);
// 逐个评分
for(int i=0;i<num;i++){
system("cls");
printf("当前正在对第 %d 个歌手进行评分:\n\n",i+1);
printf("歌手信息如下:\n");
printf("序号\t姓名\t性别\n");
printf("%d\t%s\t%s\n\n",sing[i].num,sing[i].name,sing[i].xb);
for(int n=0;n<*num_;n++){
printf("现在请第 %d 个评委进行评分(0-10分)",n+1);
scanf("%d",&sing[i].score[n]);
}
}
// 计算平均分
aver(sing,num,*num_);
printf("评分完成。\n");
}
int main(){ int main(){
SING sing[MAX]; SING sing[MAX];
// num 为歌手数num_ 为评委数 // num 为歌手数num_ 为评委数
@ -102,17 +145,18 @@ int main(){
while(1){ while(1){
// 1.菜单 // 1.菜单
printf("\t1.输入歌手信息\n"); printf("\t1.输入歌手信息\n"); // 已完成
printf("\t2.输出歌手信息\n"); printf("\t2.输出歌手信息\n"); // 已完成
printf("\t3.新增一个歌手\n"); printf("\t3.新增一个歌手\n"); // 已完成
printf("\t4.查找歌手信息\n"); printf("\t4.查找歌手信息\n");
printf("\t5.修改歌手信息\n"); printf("\t5.修改歌手信息\n");
printf("\t6.删除歌手信息\n"); printf("\t6.删除歌手信息\n");
printf("\t7.评委评分\n"); printf("\t7.排序歌手\n");
printf("\t8.输出歌手成绩\n"); printf("\t8.评委评分\n");
printf("\t9.保存歌手信息\n"); printf("\t9.输出歌手成绩\n");
printf("\t10.加载歌手信息\n"); printf("\t10.保存歌手信息\n"); // 已完成
printf("\t0.退出\n"); printf("\t11.加载歌手信息\n"); // 已完成
printf("\t0.退出\n"); // 已完成
// 2.输入 // 2.输入
scanf("%d", &choice); scanf("%d", &choice);
@ -131,10 +175,13 @@ int main(){
case 3: case 3:
insert(sing,&num); insert(sing,&num);
break; break;
case 9: case 8:
save(sing,num,num_); mark(sing,num,&num_);
break; break;
case 10: case 10:
save(sing,num,num_);
break;
case 11:
load(sing,&num,&num_); load(sing,&num,&num_);
break; break;
default: default: