能顺便帮我看下,下面的这个程序的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);
        }
    }
}