|
![]() | 作者: 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号