我想让它能一直执行,做完前一步能接着做下一步的
#include<stdio.h>
#include<stdlib.h>
#define SIZE 100
void s()
{
printf(" 校园歌手比赛管理系统\n");
printf("--------------------------------------------------\n");//大体框架
printf("-1、输入选手姓名-\n-2、评委评分\n-3、计算平均分\n-4、排名\n-5、写入数据文件\n-6、打开文件\n-7、退出系统\n");//基本功能要求
printf("--------------------------------------------------\n") ;
}
struct singer
{
int paiming;//排名
char name[20];//姓名
}singer[20];
struct score//十个评委打分
{
int score[10];//记录评委的打分
int n1;
int n2;
int n3;
int n4;
int n5;
int n6;
int n7;
int n8;
int n9;
int n10;
}score[10];
int main(){
s();
FILE * fp;
char a;
printf("选择将要进行的操作:");//选择实现具体的功能
start:
scanf("%c",&a);
int x,i=1,y,z;
switch(a){
case '1':
system("cls");
printf("输入选手的个数(10个以内)\n");
scanf("%d",&x);
int sum[10];
int max[10],min[10];
float b[10];
for(i=1;i<=x;i++)
{
sum[i]=0;
max[i]=0;
min[i]=100;
}
printf("输入选手的姓名\n");
for(i=1;i<=x;i++)
{
scanf("%s",&singer[i].name);
}
goto start;
break;
case '2':
system("cls");
for(y=1;y<=x;y++){
printf("评委为十个选手打分(1~100)\n");
printf("\n输入第一个评委对歌手%d的评分",y);
scanf("%d",&score[y].n1);
printf("\n输入第二个评委对歌手%d的评分",y);
scanf("%d",&score[y].n2);
printf("\n输入第三个评委对歌手%d的评分",y);
scanf("%d",&score[y].n3);
printf("\n输入第四个评委对歌手%d的评分",y);
scanf("%d",&score[y].n4);
printf("\n输入第五个评委对歌手%d的评分",y);
scanf("%d",&score[y].n5);
printf("\n输入第六个评委对歌手%d的评分",y);
scanf("%d",&score[y].n6);
printf("\n输入第七个评委对歌手%d的评分",y);
scanf("%d",&score[y].n7);
printf("\n输入第八个评委对歌手%d的评分",y);
scanf("%d",&score[y].n8);
printf("\n输入第九个评委对歌手%d的评分",y);
scanf("%d",&score[y].n9);
printf("\n输入第十个评委对歌手%d的评分",y);
scanf("%d",&score[y].n10);
sum[y]=sum[y]+score[y].n1+score[y].n2+score[y].n3+score[y].n4+score[y].n5+score[y].n6+score[y].n7+score[y].n8+score[y].n9+score[y].n10;
}
printf("%d\n",sum[y]);//暂时的总得分
printf("\n\n");
goto start;
break;
case '3':{
system("cls");
int ave[10];
for(y=1;y<=x;y++){//求出最高分
max[y]=(max[y]>score[y].n1)?max[y]:score[y].n1;
max[y]=(max[y]>score[y].n2)?max[y]:score[y].n2;
max[y]=(max[y]>score[y].n3)?max[y]:score[y].n3;
max[y]=(max[y]>score[y].n4)?max[y]:score[y].n5;
max[y]=(max[y]>score[y].n6)?max[y]:score[y].n6;
max[y]=(max[y]>score[y].n7)?max[y]:score[y].n7;
max[y]=(max[y]>score[y].n8)?max[y]:score[y].n8;
max[y]=(max[y]>score[y].n9)?max[y]:score[y].n9;
max[y]=(max[y]>score[y].n10)?max[y]:score[y].n10;
}
for(y=1;y<=x;y++){//求出最低分
min[y]=(min[y]<score[y].n1)?min[y]:score[y].n1;
min[y]=(min[y]<score[y].n2)?min[y]:score[y].n2;
min[y]=(min[y]<score[y].n3)?min[y]:score[y].n3;
min[y]=(min[y]<score[y].n4)?min[y]:score[y].n4;
min[y]=(min[y]<score[y].n5)?min[y]:score[y].n5;
min[y]=(min[y]<score[y].n6)?min[y]:score[y].n6;
min[y]=(min[y]<score[y].n7)?min[y]:score[y].n7;
min[y]=(min[y]<score[y].n8)?min[y]:score[y].n8;
min[y]=(min[y]<score[y].n9)?min[y]:score[y].n9;
min[y]=(min[y]<score[y].n10)?min[y]:score[y].n10;
}
for(y=1;y<=x;y++){
ave[y]=(sum[y]-max[y]-min[y])/8;//用总分减去十个评委中给出的最高分和最低分;然后除去八,即可求出平均分
printf("第%d位歌手的平均分是%5.2f\n",y,ave[y]);
}
printf("\n\n");
goto start;
break;
case '4':
system("cls");
for(i=1;i<=x;i++){
for(y=1,z=1;y<=x;y++){
if(ave[i]<ave[y])
z=z+1;
}
singer[i].paiming=z;
}
for(y=1;y<=x;y++){
if(i==singer[y].paiming)
printf("%s是第%d名,得分为%5.2f\n",singer[y].name,i,ave[y]);
}
printf("\n\n");
goto start;
break;
case '5':
system("cls");
if((fp=fopen("C:\file.dat","wb"))==NULL)
{
printf("不能打开文件\n");
}
for(i==1;i<=x;i++)
if(fwrite(&singer[i],sizeof(struct singer),1,fp)!=1);
printf("错误\n");
fclose(fp);
printf("保存成功\n");
goto start;
break;
case '6':
system("cls");
printf("输入选手的个数(不能超过之前已保存信息的人数)/n");
scanf("%d",&x);
if((fp=fopen("C:\file.dat","rb"))==NULL)
{
printf("不能打开文件\n");
}
for(i=1;i<=x;i++)
{
fread(&singer[i],sizeof(struct singer),1,fp);
printf("%s的排名为%d\n",singer[i].name,singer[i].paiming);
}
fclose(fp);
goto start;
break;
case '7':exit(0);
}
}
return 0;
}
比如完成第一个,就不能做接下来的
可以利用while和break,把要一直运行的套在里面,类似于这样