c语言评委打分double,数据类型转换方面的

能顺便帮我看下,下面的这个程序的case 3

中的for循环为什么执行不了吗?

#include

#include

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

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].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

for(t=y+1;t

if(x[y].t>x[t].t){

tidai=x[y];x[y]=x[t];x[t]=tidai;

}

for(i=0;i

break;

case 3:

printf("请输入您的编号:\n");

scanf("%d",&num);

printf("    (请正确输入,输入零结束!)\n");

for(i=0;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

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);

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值