更新 '1.c'
This commit is contained in:
parent
84e2158bd6
commit
803982d1f9
40
1.c
40
1.c
@ -10,7 +10,6 @@ typedef struct singer{
|
|||||||
float aver; // 平均分
|
float aver; // 平均分
|
||||||
int score[MAX_1]; // 原始成绩
|
int score[MAX_1]; // 原始成绩
|
||||||
}SING;
|
}SING;
|
||||||
|
|
||||||
void inarray(SING sing[MAX], int *pnum){
|
void inarray(SING sing[MAX], int *pnum){
|
||||||
// 输入歌手信息:序号、姓名、性别
|
// 输入歌手信息:序号、姓名、性别
|
||||||
int n=0;
|
int n=0;
|
||||||
@ -33,7 +32,7 @@ void outarrry(SING sing[MAX], int n){
|
|||||||
void insert(SING sing[MAX], int *pnum){
|
void insert(SING sing[MAX], int *pnum){
|
||||||
// 新增歌手信息:序号、姓名、性别(增加到最后)
|
// 新增歌手信息:序号、姓名、性别(增加到最后)
|
||||||
int n=*pnum;
|
int n=*pnum;
|
||||||
printf("请输入第%d个歌手的信息:\n",n);
|
printf("请输入第%d个歌手的信息:\n",n+1);
|
||||||
printf("序号\t姓名\t性别\n");
|
printf("序号\t姓名\t性别\n");
|
||||||
scanf("%d%s%s",&sing[n].num,sing[n].name,sing[n].xb);
|
scanf("%d%s%s",&sing[n].num,sing[n].name,sing[n].xb);
|
||||||
*pnum=n+1;
|
*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, "当前共有%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++){
|
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++){
|
for(int n=0;n<num_;n++){
|
||||||
fprintf(fp,"\t%d",sing[i].score[n]);
|
fprintf(fp,"\t%d",sing[i].score[n]);
|
||||||
}
|
}
|
||||||
fprintf(fp,"\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(){
|
int main(){
|
||||||
SING sing[MAX];
|
SING sing[MAX];
|
||||||
|
// num 为歌手数,num_ 为评委数
|
||||||
int num=0,num_=0;
|
int num=0,num_=0;
|
||||||
int choice;
|
int choice;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user