求帮助 下面这段代码哪里错了?
C:\Users\Administrator\Desktop\2.c(20) : error C2115: "function" : incompatible types C:\Users\Administrator\Desktop\2.c(20) : warning C4024: "max" : different types for formal and actual parameter 1
#include"stdio.h"
float max(float a[])
{
float *p=a,*i=a;
for(;p<p+9;p++)
if(*a<*(p+1))
{
*a=*(p+1);
i=(p+1);
}
printf("这个最大的数是数组的第%d位元素",i-a);
return *a;
}
main()
{
float a[10],*p=a,maxnum;
for(;p<p+10;p++)
scanf("%f",p);
maxnum=max(a[10]);
printf(":%f",maxnum);
}
解决方案
40
1.编译错误:
传参写错了,a[10]代表a数组第11个元素,直接传数组名就行了
maxnum=max(a[10]);改为maxnum=max(a);
2.逻辑错误:
main和max函数里for循环里p<p+10都是不对的,这个恒满足,应该改成p<a+10
传参写错了,a[10]代表a数组第11个元素,直接传数组名就行了
maxnum=max(a[10]);改为maxnum=max(a);
2.逻辑错误:
main和max函数里for循环里p<p+10都是不对的,这个恒满足,应该改成p<a+10
#include"stdio.h"
float max(float a[])
{
float *p=a,*i=a;
for(;p<a+9;p++)
if(*a<*(p+1))
{
*a=*(p+1);
i=(p+1);
}
printf("这个最大的数是数组的第%d位元素",i-a);
return *a;
}
void main()
{
float a[10],*p=a,maxnum;
for(;p<a+10;p++)
scanf("%f",p);
maxnum=max(a);
printf(":%f",maxnum);
}