谁能帮我改一下c语言程序?

题目:有一青年歌手大奖赛,试编写一个评分系统,具体实现方法为:编写一个对n个数据从大到小的排序函数,再编写一个计算最后得分的函数,计算方法是去除一个最高分,去除一个最低分... 题目:有一青年歌手大奖赛,试编写一个评分系统,具体实现方法为:编写一个对n个数据从大到小的排序函数,再编写一个计算最后得分的函数,计算方法是去除一个最高分,去除一个最低分,其余的平均分为参赛选手的最后得分。并在主函数中调用它们对有n个评委评分,m个选手参赛的最后得分,从大到小排序输出。
我的程序:#include<stdio.h>
void sort(int a[][100],int m,int n)
{int i,j,t,k;
for (i=0;i<m;i++)
for(j=0;j<n-1;j++)
for(k=0;k<n-1-j;k++)
if(a[i][k]<a[i][k+1])
{ t=a[i][k];
a[i][k]=a[i][k+1];
a[i][k+1]=t;}}
float average(int a[][100], int m,int n)
{int sum[100],ave[100],i,j;
for (i=0;i<m;i++)
for (j=1;j<n-1;j++)
sum[i]+=a[i][j];
for(i=0;i<m;i++)
ave[i]=sum[i]/(m-2);}
void main()
{int i,j,m,n,a[100][100],average;
scanf("%d,%d",&m,&n);
for (i=0;i<m;i++)
for (j=0;j<n;j++)
scanf("%d",&a[i][j]);
sort(a[m][n],m,n);
average[]=average(a[m][n],m,n);
for(i=0;i<m;i++)
printf("%d\n",averge[i]);
}
最好不要有大的删改,谢谢!
展开
 我来答
lishuo1992
2013-06-02 · TA获得超过735个赞
知道答主
回答量:217
采纳率:0%
帮助的人:42.3万
展开全部

LZ是新手吧,这代码写的....不过也没关系了,可能刚刚学习,但是改起来,,真不如我重新写一个,也就1分钟的事,,,改的心烦呀..

#include<stdio.h>

int a[100][100]; //全局变量 

double ave[100]; //全局变量 


void sort(int m,int n)
{
int i,j,t,k;
for (i=0;i<m;i++)
for(j=0;j<n-1;j++)
   for(k=0;k<n-1-j;k++)
if(a[i][k]<a[i][k+1])
  {  t=a[i][k];
    a[i][k]=a[i][k+1];
    a[i][k+1]=t;}
}
void aver(int m,int n)//函数名字不能为特殊字 
{
int sum[100];
int i,j;
for (i=0;i<m;i++)
{
sum[i] = 0;
for (j=1;j<n-1;j++)
{
sum[i]+=a[i][j];
}
}
for(i=0;i<m;i++)
ave[i]=sum[i] * 1.0 / (n-2) * 1.0; //这里错了不是m-2 
}
int main()
{int i,j,m,n,average;
scanf("%d%d",&m,&n);
for (i=0;i<m;i++)
for (j=0;j<n;j++)
scanf("%d",&a[i][j]);
sort(m,n);
aver(m,n);
for(i=0;i<m;i++)
printf("%.2lf\n", ave[i]);
return 0;
}

 


没给你排版,不明白继续追问

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式