求帮助 下面这段代码哪里错了?
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); }