运动会计分系统c语言报告,用c语言制作一个简单的赛场计分系统(不同数组的转换问题)...

#include

#define N 40

void getscore(int score[],int m);

void sortscore(int score[],int n,int m);

float averofscore(int score[]);

void sortdata(int data[],int n);

void swap(int *x,int *y);

void printdata(int data[],int n);

int main()

{

int score[N]={0};int data[N]={0};int i,m,n,a;

printf("多少个学生:");

scanf("%d",&n);

printf("多少个裁判:");

scanf("%d",&m);

for(i=0;i

{

getscore(score,n);

sortscore(score,n,m);

a=averofscore(score);

data[i]=a;

}

sortdata(data,n);

printdata(data,n);

return 0;

}

void getscore(int score[],int m)

{

int i;

printf("请打分(中间用空格隔开):");

for(i=0;i

{

scanf("%d",&score[i]);

}

}

void sortscore(int score[],int n,int m)

{

int max=score[0];int min=score[0];int i,maxscore,minscore;int maxindex=0;int minindex=0;

for(i=0;i

{

if(score[i]>max)

{

max=score[i];

maxindex=i;

}

}

for(i=0;i

{

if(score[i]

{

min=score[i];

minindex=i;

}

}

score[minindex]=0;score[maxindex]=0;

}

float averofscore(int score[])

{

int i,n;float sum;

for(i=0;i

{

sum+=score[i];

}

return sum/n;

}

void sortdata(int data[],int n)

{

int i,k,j;

for(i=0;i

{

k=i;

for(j=k+1;j

{

if(data[k]

k=j;

}

if(k!=i)

swap(&data[k],&data[i]);

}

}

void swap(int *x,int *y)

{

int temp;

temp=*x;

*x=*y;

*y=temp;

}

void printdata(int data[],int n)

{

int i;

printf("降序排列中.....\n");

for(i=0;i

{

printf("%d\t",data[i]);

}

}

我的思路是先把打的分数存入一个数组,去掉一个最高分,去掉一个最低分,再求平均得分。再把平均得分存入另一个数组中,按降序排列输出成绩。。。现在问题是平均数可能是一个小数,不能存入一个int型的数组,然后我就把小数存入一个float型的数组中,但在执行swap函数的时候又报错,请教一下应该怎么修改程序使其正常运行,感谢!

错误提示如下:8325  [Error] cannot convert 'float*' to 'int*' for argument '1' to 'void swap(int*, int*)'

你可能感兴趣的:(运动会计分系统c语言报告)