求高手看看我的程序错在哪里了啊!
程序代码:
#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 编辑 ]