共有回帖数  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 回复 
 
 
   
             
                  
                  
 
 
 
     
	 
  
	Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号
	
	意见反馈 | 
	关于直线 | 
	版权声明 | 
	会员须知