#include"stdio.h"
float fun(float tt,int n,float *max,float *min);
int main()
{
float arry[20],max,min;
int n,i;
printf("Please enter the array length:");
printf("Please enter a value for each element:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%f",&arry[i]);
}
fun(arry,n, max, min);
printf("average=%.2f,max=%.2f,min=%.2f"average,max,min);
}
fun(float *tt,int n,float *max, float *min)
{
float average=0;
for(int i=0;i<n;i++)
{
max=tt[0],min=tt[0];
if(tt[i]<tt[i+1]) max=tt[i+1];
else if(tt[i]>tt[i+1]) min=[i+1];
average+=tt[i];
}
average=average/n;
}
[Error] cannot convert 'float' to 'float*' in assignment
第3行fun函数的第一个参数类型和第20行的第一个参数类型不一致
第20行的fun函数前面也没有写返回值
错误太多了,不一一说了,代码修改如下:
#include"stdio.h"
float fun(float *tt,int n,float *max,float *min);
int main()
{
float arry[20],max,min,average;
int n,i;
printf("Please enter the array length:");
printf("Please enter a value for each element:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%f",&arry[i]);
}
average=fun(arry,n, &max, &min);
printf("average=%.2f,max=%.2f,min=%.2f",average,max,min);
}
float fun(float *tt,int n,float *max, float *min)
{
float average=0;
for(int i=0;i<n;i++)
{
*max=tt[0],*min=tt[0];
if(tt[i]<tt[i+1]) *max=tt[i+1];
else if(tt[i]>tt[i+1]) *min=tt[i+1];
average+=tt[i];
}
average=average/n;
return average;
}
fun(arry,n, &max, &min);
函数后两个参数要求是int*,所以max和min要取地址才行
另外第3行改成
float fun(float * tt,int n,float * max,float * min);
函数申明和函数实现必须一致
fun函数也不对,max和min是指针参数啊
#include <stdio.h>
float fun(float *tt,int n,float *max,float *min);
int main()
{
float arry[20],max,min,average;
int n,i;
printf("Please enter the array length:");
scanf("%d",&n);
printf("Please enter a value for each element:");
for(i=0;i<n;i++)
{
scanf("%f",&arry[i]);
}
average = fun(arry,n, &max, &min);
printf("average=%.2f,max=%.2f,min=%.2f",average,max,min);
return 0;
}
float fun(float *tt,int n,float *max, float *min)
{
float average=0;
*max=tt[0],*min=tt[0];
for(int i=0;i<n;i++)
{
if(tt[i]>*max)
*max=tt[i];
if(tt[i]<*min)
*min=tt[i];
average+=tt[i];
}
average=average/n;
return average;
}