C语言,对于如何让程序一直执行

我想让它能一直执行,做完前一步能接着做下一步的

#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,把要一直运行的套在里面,类似于这样