论坛: 编程破解 标题: c编程的一道题!(数据结构) 复制本贴地址    
作者: admin_20cn [admin_20cn]    论坛用户   登录
小弟刚学c语,遇到一道难题(对我来说很难啊)
题目:n个选手,评选出一等奖一名
                     二等奖2名
                     三等奖3名
       要求,输出得奖情况和平分过程
              m个裁判给选手平分,去掉一个最高分,去掉一个最低分
              求平均分,然后根据分数依次平1,2,3等奖
 用到函数 1)排序函数(sort)
          2) 平均分(average)
      用以上两个函数评奖


小弟不太懂,只写出了一下部分

#define N 100
#define M 20
main()
{
void sort(float *a,int n);
float ave(float *p,int n);
int i,j,k,n,m;float *p;
float a,player[N][M];
printf("enter the number of players\n");
scanf("%d",&n);
printf("the number of judge:");
scanf("%d",&m);
for(i=0;i<n;i++)
{ printf("that is palyer%d:\n",i+1);
  for(j=0;j<m;j++)
  {
    printf("enter the judge%d's mark:",j+1);
    scanf("%f",&player[i][j]);
  }
  printf("\n");
  printf("your enter marks:\n");
  for(j=0;j<n-1;j++)
  printf("%3.0f",player[i][j]);
  printf("\n");
  p=player[i];
  sort(p,n);
   printf("the highest mark %3.2f\n",player[i][0]);
  printf("the lowest mark %3.2f\n",player[i][m-1]);
  a=ave(player[i],m);
  printf("ping ju shu :%3.2f\n",&a);
  }
  }
void sort(float *x,int n)
{  int i,j,k;float t;
    for(i=0;i<n-1;i++)
     {k=i;
     for(j=i+1;j<n;j++)
     if(*(x+j)>*(x+k))k=j;
     if(k!=i)
     {t=*(x+i);*(x+i)=*(x+k);*(x+k)=t;}
   }
    }
float ave(float *p,int n)
{
  int i;float s,a;
  for(i=0;i<n;i++)
   { s+=*(p+i);
     a=s/n;
     return (a);
   }
} 






[此贴被 相见不如怀念(admin_20cn) 在 06月08日00时46分 编辑过]


[此贴被 相见不如怀念(admin_20cn) 在 06月08日16时01分 编辑过]


[此贴被 相见不如怀念(admin_20cn) 在 06月08日16时48分 编辑过]

地主 发表时间: 06/07 13:01

回复: flavor [flavor]   论坛用户   登录
老严的数据结构上写得很清楚麻。

B1层 发表时间: 06/07 20:38

回复: admin_20cn [admin_20cn]   论坛用户   登录
哦,在哪有下的啊

B2层 发表时间: 06/07 23:30

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号