谁能帮我改一下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]);
}
最好不要有大的删改,谢谢! 展开
我的程序:#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]);
}
最好不要有大的删改,谢谢! 展开
1个回答
展开全部
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;
}
没给你排版,不明白继续追问
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询