请问这个错误是啥意思?
#include<stdio.h>#define N 3 //number of people
typedef struct
{
int id;
float s;//chinese math english
}stu;
int av1(float grade,float sum)
{
int i,j=0;
for(i=0;i<N;i++)
{
if((sum/3)<=60)
{
j++;
}
}
return j+1;
}
int main()
{
stu s;
int i,j,fail;
float sum;
for(i=0;i<N;i++)
{
scanf("%d",&s.id);
scanf("%f",&s.s);
scanf("%f",&s.s);
scanf("%f",&s.s);
}
for(i=0;i<N;i++)
for(j=0;j<3;j++)
{
sum=s.s;
}
fail=av1(s.s,sum); // cannot convert 'float' to 'float*' for argument '2' to 'int av1(float*, float*)
printf("number of failures:%d",fail);
return 0;
}
错误在倒数第三行,啥意思 怎么改才对? 求助 #include<stdio.h>
#define N 3 //number of people
typedef struct
{
int id;
float s;//chinese math english
}stu;
int av1(float grade,float sum)
{
int i,j=0;
for(i=0;i<N;i++)
{
if((sum/3)<=60)
{
j++;
}
}
return j;
}
int main()
{
stu s;
int i,j,fail;
float sum={0,0,0};
for(i=0;i<N;i++)
{
scanf("%d",&s.id);
scanf("%f",&s.s);
scanf("%f",&s.s);
scanf("%f",&s.s);
}
for(i=0;i<N;i++)
for(j=0;j<3;j++)
{
sum+=s.s;
}
fail=av1(s.s,sum); // cannot convert 'float' to 'float*' for argument '2' to 'int av1(float*, float*)
printf("number of failures:%d\n",fail);
return 0;
} 我看你其他细节好像也有错误,我就给你改了一下,你复制我的看一下吧 倒数第三行第二个参数传的是数组名,你把元素传过去了 a327190489 发表于 2020-11-18 16:30
返回j+1为啥不行 你应该是返回平均成绩小于60的人数吧,按你这样的话,三个人的平均成绩都大于60还是会返回一个人,因为j初始值为0,没人挂科你还返回j+1 a327190489 发表于 2020-11-18 16:41
你应该是返回平均成绩小于60的人数吧,按你这样的话,三个人的平均成绩都大于60还是会返回一个人,因为j初 ...
所以错误是因为sum未初始化吗 错误是参数类型不对吧,人家必须得传函数名,你传的是具体的元素,你看一下你的倒数第三行和我的倒数 第三行那个第二个参数,我给你sum初始化是因为你最后的for循环里面写错了,是求和,求和你那个变量就得有个初值等于零(这是你的其他问题)。你所问的问题就是函数参数写的不对,对照一下倒数第三行吧
页:
[1]