c传递函数问题

来源:百度知道 编辑:UC知道 时间:2024/05/25 06:49:44
做了个函数习题。。是把数组做参数传递。。但是最后求最大值这里出错。。求救。。

#include <stdio.h>
float max(float b[5]);
void sort(float a[5]);
void main()
{
float grade[5];
int i;
printf("请输入5个学员成绩:");
for(i=0;i<5;i++)
{
scanf("%f",&grade[i]);
}
sort(grade);
printf("\n排序后成绩为:");
for(i=0;i<5;i++)
{
printf("%.2f ",grade[i]);
}
printf("\n");

float big=max(grade); //把最大值传给grade (貌似就这个地方错了。)
printf("最大值为:%f",big);
}
void sort(float a[5]) //排序
{
int i,j;
float t;
for(i=0;i<5;i++)
{
for(j=0;j<5-i-1;j++)
{
if(a[j]<a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
}
float max(float b[5])
{
float big;
int i;
big=b[0];
for(i=0;i<5;i++)
{

因为在c中的函数中已经存在了max这个函数,你将子函数名命名为max,系统会混淆

在主函数中的语句 float big=max(grade);改为 float big=max_me(grade)
函数声明中:float max(float b[5]); 改为float big=max_me(float b[5])
最后的子函数改为 float max_me(float b[5])

-----------
如果还是不行,将程序中的变量名big改一下名字,最好是带上下划线的名字,如big_me,这样不容易与c自带的名字混淆