求高手看看我的程序错在哪里了啊!
程序代码:#include<stdio.h>
int main()
{
int s[100];//声明评分数组
int i,j; //声明循环变量i,j
int m,n;//声明变量 m:评委的人数,
int max=s[0];
int min=s[0];
float sum;
float ave;
int a[100];
float b[100];
//输入m的值
printf("请输入评委人数(最少4人):");
scanf("%d",&m);
while(m<4)
{printf("请输入正确的评委数:");
scanf("%d",&m);
}
//输入n的值
printf("请输入学生数(最少5人):");
scanf("%d",&n);
while(n<5)
{printf("请输入正确的学生数:");
scanf("%d",&n);
}
for(j=1;j<=n;j++)
{//输入各评委的打分
printf("输入各评委给第%d个学生的打分:",j);
for(i=0;i<m;i++)
scanf("%d",&s[i]);
//求出个评委所打分的最高分和最低分
for(i=0;i<m;i++)
{if(s[i]>max)max=s[i];
if(s[i]<min)min=s[i];
}
//计算选手得分
for(i=0;i<m;i++)
sum=0;
sum=sum+s[i];
sum=sum-max-min;
ave=sum/(n-2);
//输出选手得分并记录
printf("第%d个学生的分数:%.2f\n",j,ave);
a[j]=j;//记录号数
b[j]=ave;//记录分数
}
//下面这部分进行排名
int k;
float t;
for(j=1;j<=n;j++)
{ for(k=1;k<=n-1;k++)
if(b[j]<b[k+1]){t=b[j]; b[j]=b[k+1];b[k+1]=t;a[j]=k+1;
printf("第%d名%d号%.2f",j,a[j],b[j]);
}
}
return 0;
}为什么计算的结果不对啊!(异常的不解,怎么也看不出问题)
还有为什么 排名的部分为什么没执行啊!
[ 本帖最后由 唏嘘草 于 2011-6-8 18:22 编辑 ]









