请问各位高手这个程序有什么问题呢??

来源:百度知道 编辑:UC知道 时间:2024/05/30 05:57:42
#include <stdio.h>
#define N 10
float max(float a[], int n);
void main()
{
float data[N],m;
int i;

for(i=0;i<N;i++)
scanf("%f",data[i]);
printf("max is=%f",max(data[N],N));

}
float max(float a[], int n)
{
int i;
float result;

for(i=0;i<n;i++)
{
if(a[i] > result)
result = a[i];
}

return result;
}
总出现'max' : cannot convert parameter 1 from 'float' to 'float []'
There is no context in which this conversion is possible

#include <stdio.h>
#define N 10
float max(float a[], int n);
void main()
{
float data[N],m;
int i;

for(i=0;i<N;i++)
scanf("%f",&data[i]); /* 少了 & */
printf("max is=%f",max(data,N));/* 去掉[N] */

}

float max(float a[], int n)
{
int i;
float result=a[0]; /* result初始化为 a[0] */

for(i=1;i<n;i++) /* i 从 1 开始 */
{
if(a[i] > result)
result = a[i];
}

return result;
}

float max(float a[], int n);
传的时候要这样
max(data,N)
另外,flag data[N]
这样,调用的时候data[N-1]是最后一个元素.
还有scanf("%f",&data[i]);

float result = a[0];初始化一下吧.