
问一个c语言问题啦,我是菜鸟,大家帮忙
函数主题没问题,但提示reserach1返回值无效,为嘛无效嘛#include<stdio.h>intmain(){float*research1(float(*p)[5...
函数主题没问题,但提示reserach1返回值无效,为嘛无效嘛
#include<stdio.h>
int main()
{
float *research1(float (*p)[5]);
float *research2(float (*p)[5],float q);
float a[4][5],b[4],sum;
float *p;
int i,j;
for(i=0;i<4;i++)
for(j=0;j<5;j++)
scanf("%f",&a[i][j]);
for(i=0;i<4;i++)
{p=research1(a+i);
if(p==*(a+i))
{
printf("No.%d score",i);
for(j=0,sum=0;j<5;j++)
{
printf("%5.2f",*(p+j));
sum=sum+*(p+j);
}
b[i]=sum/5;
printf("average=%5.2f\n",b[i]);
}
}
for(i=0;i<4;i++)
{p=research2(a+i,b[i]);
if(p==*(a+i))
{
printf("No.%d.score\n",i);
}
}
return 0;
}
float *research1(float (*p)[5])
{int i;
float *pt;
pt=NULL;
for(i=0;i<5;i++)
{
if(*(*p+i)<60) pt=*p;
return(pt);
}
}
float *research2(float (*p)[5],float q)
{int i;
float *pt;
pt=NULL;
if(q>90)
{pt=*p;}
else{
for(i=0;i<5;i++)
{
if(*(*p+i)<85)
break;
if(i==4)
pt=*p;
}}
return(pt);
} 展开
#include<stdio.h>
int main()
{
float *research1(float (*p)[5]);
float *research2(float (*p)[5],float q);
float a[4][5],b[4],sum;
float *p;
int i,j;
for(i=0;i<4;i++)
for(j=0;j<5;j++)
scanf("%f",&a[i][j]);
for(i=0;i<4;i++)
{p=research1(a+i);
if(p==*(a+i))
{
printf("No.%d score",i);
for(j=0,sum=0;j<5;j++)
{
printf("%5.2f",*(p+j));
sum=sum+*(p+j);
}
b[i]=sum/5;
printf("average=%5.2f\n",b[i]);
}
}
for(i=0;i<4;i++)
{p=research2(a+i,b[i]);
if(p==*(a+i))
{
printf("No.%d.score\n",i);
}
}
return 0;
}
float *research1(float (*p)[5])
{int i;
float *pt;
pt=NULL;
for(i=0;i<5;i++)
{
if(*(*p+i)<60) pt=*p;
return(pt);
}
}
float *research2(float (*p)[5],float q)
{int i;
float *pt;
pt=NULL;
if(q>90)
{pt=*p;}
else{
for(i=0;i<5;i++)
{
if(*(*p+i)<85)
break;
if(i==4)
pt=*p;
}}
return(pt);
} 展开
展开全部
我运行时没报错啊,不过你main函数的返回类型最好改成float,因为你下面调用的函数返回类型均是float,用int虽然不会报错,但可能损失精度。
追问
可以运行,但research1函数功能无法实现哎,你能把你运行结果截下图么
追答
你把research1函数里的return语句放到for语句里面,这样里面if语句最多实现一次,然后就返回pt了,把return语句放到for语句外面吧
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询