永发信息网

scanf:floating point formats not linked这是什么问题啊!

答案:2  悬赏:80  手机版
解决时间 2021-03-02 10:21
  • 提问者网友:杀生予夺
  • 2021-03-02 04:51
问题原题是
10个评委给15位演员打分(0~10分),记分方法为:去掉一个最高分和一个最低分后的平均分。根据10个评委给15位演员所打的分数,按平均分从高到低排序后输出每位演员的分数。
要求:程序中要设计5个函数 (1)求10个分数中的最高分;
(2)求10个分数中的最低分;
(3)求每位演员的平均分;
(4)对15位演员的平均分进行降序排序,排序后保留每一分数所对应的演员编号;
(5)输出排序后的演员编号和分数。
用函数做,不要用指针什么的。。。。
我写出来的如下,但是只要一运行就显示scanf:floating point formats not linked
求各位帮忙看看问题所在,谢啦!

#include
#define N 15
#define M 10
float score[N][16];
void main()
{
int i;
void input(void);
float high(int i);
float low(int i);
float aver(void);
input();
high(i);
low(i);
aver();
printf("\n No. score\n");
for(i=0;i printf("No. %2d %8.2f\n",i+i,score[i][16]);
}
void input(void)
{
int i,j;
for(i=0;i {
printf("\input 10 scores of actor %2d:\n",i+1);
for(j=0;j scanf("%f",&score[i][j]);
}
}
float high(int i)
{
int j;
float h;
h=score[i][0];
for(j=0;j if (score[i][j]>h)
h=score[i][j];
return(h);
}
float low(int i)
{
int j;
float l;
l=score[i][0];
for(j=0;j if(score[i][j] l=score[i][j];
return (l);
}
float aver(void)
{
int i,j,hi,lo;
float s=0;
for(i=0;i {
for(j=0;j s+=score[i][j];
hi=high(i);
lo=low(i);
s=s-hi-lo;
score[i][16]=s/8;
}
}
最佳答案
  • 五星知识达人网友:一把行者刀
  • 2021-03-02 05:37
我没仔细看但是你的函数声明位置不对,也许还有其他的错,你先把函数声明的位置改一下,如果还有问题,可以追问。我一直在线,也可以私信我
全部回答
  • 1楼网友:大漠
  • 2021-03-02 06:07
return int(x>y? x:y);做强制类型转换,应为x和y都是float,而返回值要是整形,所以要转换下。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯