更新 '1.c'

This commit is contained in:
xtaodada 2022-03-06 02:43:01 -05:00
parent 84e2158bd6
commit 803982d1f9

40
1.c
View File

@ -10,7 +10,6 @@ typedef struct singer{
float aver; // 平均分
int score[MAX_1]; // 原始成绩
}SING;
void inarray(SING sing[MAX], int *pnum){
// 输入歌手信息:序号、姓名、性别
int n=0;
@ -33,7 +32,7 @@ void outarrry(SING sing[MAX], int n){
void insert(SING sing[MAX], int *pnum){
// 新增歌手信息:序号、姓名、性别(增加到最后)
int n=*pnum;
printf("请输入第%d个歌手的信息\n",n);
printf("请输入第%d个歌手的信息\n",n+1);
printf("序号\t姓名\t性别\n");
scanf("%d%s%s",&sing[n].num,sing[n].name,sing[n].xb);
*pnum=n+1;
@ -53,18 +52,51 @@ void save(SING sing[MAX], int num, int num_){
}
// 写入文件
fprintf(fp, "当前共有%d个歌手%d个评委\n",num,num_);
fprintf(fp, "序号\t姓名\t性别\t成绩\n");
fprintf(fp, "序号\t姓名\t性别\t平均分\t原始成绩\n");
for(int i=0;i<num;i++){
fprintf(fp,"%d\t%s\t%s",sing[i].num,sing[i].name,sing[i].xb);
fprintf(fp,"%d\t%s\t%s\t%.2f",sing[i].num,sing[i].name,sing[i].xb,sing[i].aver);
for(int n=0;n<num_;n++){
fprintf(fp,"\t%d",sing[i].score[n]);
}
fprintf(fp,"\n");
}
printf("导出完成\n");
// 关闭文件
fclose(fp);
}
void load(SING sing[MAX], int *num, int *num_){
// 从文件读取数据
FILE *fp;
char filename[10],temp[10];
printf("请输入文件名:");
scanf("%s", filename);
// 打开文件
if((fp=fopen(filename, "r"))==NULL){
printf("无法打开该文件,可能是文件名有误!\n");
return;
}
// 读取数据
fscanf(fp,"当前共有%d个歌手%d个评委",num,num_);
// 过滤多余文本
for(int i=0;i<5;i++){
fscanf(fp,"%s",temp);
}
// 读取歌手信息
for(int i=0;i<*num;i++){
fscanf(fp,"%d%s%s%f",&sing[i].num,sing[i].name,sing[i].xb,&sing[i].aver);
for(int n=0;n<*num_;n++){
fscanf(fp,"%d",&sing[i].score[n]);
}
}
printf("读取完成。\n");
// 关闭文件
fclose(fp);
}
int main(){
SING sing[MAX];
// num 为歌手数num_ 为评委数
int num=0,num_=0;
int choice;