能顺便帮我看下,下面的这个程序的case 3
中的for循环为什么执行不了吗?
#include<stdio.h>
#include<stdlib.h>
struct xuanshou{
int y;//编号
char name[20];//姓名
int fen[10];//评委打分
double t;//平均分
double total;//总分
}x[100],tidai;
void main(){
int q,i,j,w,e,t,r,y;
char m;//字符中介26行
char
num;
FILE *fp;
printf("\t*********************歌手比赛系统*******************\n");
printf("1输入选手数据,评委打分******2成绩排序(按平均分)******3查询数据******4保存数据******5退出系统\n");
for(;;){
printf("请输入你要执行的操作数\n");
scanf("%d",&q);
switch(q){
case 1:printf("请输入有多少选手参加比赛\n");
scanf("%d",&w);
for(i=0;i<w;i++){
x[i].y=i+1;
printf("选手%d:姓名:",i+1);
scanf("%s",x[i].name);
printf("请输入十个评委所给的分数\n");
scanf("%d%d%d%d%d%d%d%d%d%d",&x[i].fen[0],&x[i].fen[1],&x[i].fen[2],&x[i].fen[3],&x[i].fen[4],&x[i].fen[5],&x[i].fen[6],&x[i].fen[7],&x[i].fen[8],&x[i].fen[9]);
for(e=1;e<10;e++)
if(x[i].fen[0]>x[i].fen[e]){r=x[i].fen[0];x[i].fen[0]=x[i].fen[e];x[i].fen[e]=r;}
for(e=0;e<9;e++)
if(x[i].fen[9]<x[i].fen[e]){r=x[i].fen[9];x[i].fen[9]=x[i].fen[e];x[i].fen[e]=r;}
x[i].t=(x[i].fen[1]+x[i].fen[2]+x[i].fen[3]+x[i].fen[4]+x[i].fen[5]+x[i].fen[6]+x[i].fen[7]+x[i].fen[8])/8.0;
//
printf("平均分:%.2f\n",x[i].t);
x[i].total=x[i].fen[1]+x[i].fen[2]+x[i].fen[3]+x[i].fen[4]+x[i].fen[5]+x[i].fen[6]+x[i].fen[7]+x[i].fen[8]+x[i].fen[9]+x[i].fen[0];
}break;
case 2:for(y=0;y<w-1;y++)
for(t=y+1;t<w;t++)
if(x[y].t>x[t].t){
tidai=x[y];x[y]=x[t];x[t]=tidai;
}
for(i=0;i<w;i++)printf("选手:%d
名字:%s
平均分:%lf
总分:%llf
第%d名\n",x[i].y,x[i].name,x[i].t,x[i].total,(i+1));//q输入的操作数,i
break;
case 3:
printf("请输入您的编号:\n");
scanf("%d",&num);
printf("
(请正确输入,输入零结束!)\n");
for(i=0;i<w;i++)
{
if(num==x[i].y)
printf("选手:%d
姓名:%s
平均分:%lf
总分:%lf
排名:%d\n",x[i].y,x[i].name,x[i].t,x[i].total,i+1);
}
break;
case 4:
if((fp=fopen("D:\歌手比赛系统\数据.txt","w"))==NULL)
{
printf("保存出现错误!!!\n");
exit(0);
}
printf("
保存内容:\n");
for(j=0;j<w;j++) {
printf("选手:%d
姓名:%s
平均分:%lf
总分:%lf
排名:%d\n",x[j].y,x[j].name,x[j].t,x[j].total,j+1);
fputs("选手:",fp);
fprintf(fp,"%d",x[j].y);
fputs("
",fp);
fputs("姓名:",fp);
fprintf(fp,"%s",x[j].name);
fputs("
",fp);
fputs("平均分:",fp);
fprintf(fp,"%lf",x[j].t);
fputs("
",fp);
fputs("总分:",fp);
fprintf(fp,"%lf",x[j].total); fputs("
",fp);
fputs("排名:",fp);
fprintf(fp,"%d",j+1);
fputs("
",fp);
}
fclose(fp);
break;
case 5:
exit(0);
}
}
}