签到

06月20日
尚未签到

共有回帖数 0

    幻梦如戏

    等级:
    #includestdio.h
    #includestring.h
    int i,j,k,t,m,n;
    int sum[10],Max[10],Min[10];
    float aver[10]={0};
    struct player
    {
    int num;
    char name[10];
    int score[10];
    };


    int main()
    {
    int z=1;
    char p[6];
    struct player a[10];

    while(z==1)
    {
    printf("tt*****************1-输入选手数据********************nn");
    printf("tt*****************2-输入评委打分********************nn");
    printf("tt*****************3-选手成绩排序********************nn");
    printf("tt*****************4-根据编号查询********************nn");
    printf("tt*****************5-根据姓名查询********************nn");
    printf("tt*****************6-评分系统结束********************nn");
    printf("请根据指示输入操作代码:");
    scanf("%d",&n);
    switch(n)
    {
    case 1: printf("***********************编号**姓名********nn");
    for(i=0;i10;i++)
    {
    printf("请输入第%2d位选手的信息:",i+1) ;
    scanf("%d %s",&a.num,&a.name);
    }
    printf("nn");
    break;
    case 2:printf("**********************************01*02*03*04*05*06*07*08*09*10**nn");
    for (i=0;i10;i++)
    {
    printf("请输入十位裁判给第%2d位选手的打分:",i+1);
    for(j=0;j10;j++)
    scanf("%d",&a.score[j]);
    }
    printf("nn");
    break;
    case 3:for(i=0;i10;i++)
    {
    Max=a.score[0];
    Min=a.score[0];
    for (j=0;j10;j++)
    {
    sum+=a.score[j];
    if(Maxa.score[j]) Max=a.score[j];
    if (Mina.score[j]) Min=a.score[j];
    }
    aver=(float)(sum-Max-Min)/8;
    }
    float w;
    char sub[10];
    for(i=0;i10;i++)
    {
    k=i;
    for(j=i+1;j10;j++)
    if(aver[k]aver[j]) k=j;
    if (k!=i)
    {
    w=aver;
    aver=aver[k];
    aver[k]=w;

    strcpy(sub,a.name);
    strcpy(a.name,a[k].name);
    strcpy(a[k].name,sub);

    t=a.num;
    a.num=a[k].num;
    a[k].num=t;
    }
    }
    for(i=0;i10;i++)
    printf("%s %5.2fn",a.name,aver);
    printf("nn");
    break;
    case 4:printf("请输入您想要查询的选手编号:");
    scanf("%d",&m);
    for(i=0;i10;i++)
    {
    if(a.num==m)
    {
    printf("第%d位选手%s是第%d名,平均分为%5.2fn",a.num,a.name,i+1,aver);
    break;
    }
    if(i==9&&a.num!=m)
    {
    printf("查无此人");
    }
    }
    printf("nn");
    break;
    case 5:printf("请输入您想要查询的选手姓名:");
    scanf("%s",p);
    for(i=0;i10;i++)
    {
    if(strcmp(a.name,p)==0)
    {
    printf("%d位选手%s是第%d名,平均分为%5.2fn",a.num,a.name,i+1,aver);
    break;
    }
    if(i==9&&a.num!=m)
    {
    printf("查无此人");
    }
    }
    printf("nn");
    break;
    default:z=0;
    }
    }
    return 0;
    }
    运行没问题,但到了case3排序的时候如果按第二次3再一次排序的话就数据全都变了

    楼主 2015-06-24 23:33 回复

共有回帖数 0
  • 回 帖
  • 表情 图片 视频
  • 发表

登录直线网账号

Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号 意见反馈 | 关于直线 | 版权声明 | 会员须知