之前的一个程序,改了一半出来了,但是怎么也弄不出来“输出分数最高三位同学的序号”
#define M 100#include<stdio.h>
void main()
{
void Fox(int *p,int k);
int x,y,z,m,n,w,i,j,a[M][M];
float max1=0.0,max2=0.0,max3=0.0,b[M],sum=0.0;
printf("请输入评委数:");
scanf("%d",&x);
printf("请输入参赛人数:");
scanf("%d",&y);
printf("请输入打分方式1or2:");
scanf("%d",&z);
printf("请选择5分制、10分制或者100分制:");
scanf("%d",&m);
if(z==1) /* 方式一*/
{
for(i=0;i<x;i++)
{
printf("请您按顺序给所有选手打分:");
for(j=0;j<y;j++)
{
scanf("%d",&a[i][j]);
Fox(&a[i][j],m);
}
}
for(j=0;j<y;j++)
{
for(i=0;i<x;i++)
{
sum+=a[i][j];
b[j]=sum/(float)x;
// sum=a[0][i+1];
}
printf("学生平均成绩b[%d]=%f\n",j,b[j]);
sum=0.0;
}
/*for(j=0;j<y;j++)//////////////////////输出前三的位置
{
if (b[j]<b[j+1])
{
max1=b[j+1];max2=b[j];m=j;n=j-1;
}
else if(b[j+2]>b[j]&&b[j+2]<b[j+1])
{ max1=max1;max2=b[j+2];max3=b[j];
m=j;n=j+1;w=j-1;}
else if(b[j+2]>b[j+1])
{ max1=b[j+2];max2=b[j+1];max3=b[j];
m=j+1;n=j;w=j-1;}
else if(b[j+2]<b[j])
{ max1=max1;max2=max2;max3=b[j+2];
m=j;n=j-1;w=j+1;}
}
printf("最高分序号:%4d%4d%4d\n",m,n,w);*/
}
else /* 方式二*/
{
for(i=0;i<y;i++)
{
printf("请几位评委录入您的分数:");
for(j=0;j<x;j++)
{
scanf("%d",&a[j][i]);
Fox(&a[j][i],m);
}
}
/* for(j=0;j<y;j++)
{
b[j]=(a[0][j]+a[1][j]+a[2][j])/3.0;
printf("学生平均成绩b[j]=%f\n",b[j]);
}*/
for(i=0;i<y;i++)
{
for(j=0;j<x;j++)
{
sum+=a[j][i];
b[i]=sum/(float)x;
}
printf("学生平均成绩b[%d]=%f\n",i,b[i]);
sum=0.0;
}
}
}
void Fox(int *p,int k)
{
if(k==5)
{
if(*p<1||*p>5)
{
printf("输入格式错误,请检查后再次输入:");
scanf("%d",p);
}
}
else if(k==10)
{
if(*p<1||*p>10)
{
printf("输入错误,请再次输入:");
scanf("%d",p);
}
}
else if(k==100)
{
if(*p<1||*p>100)
{
printf("输入格式错误,请检查后再次输入:");
scanf("%d",p);
}
}
}
本来想帮别人改出来的 ,结果他本人调出来了,我还没有弄出来,好难受!求大侠帮助