运动会计分系统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*)'

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值