#include
int main()
{
float max_();
float min_();
int i;
float a[5];
for(i=0;i<5;i++)
scanf("%f",&a[i]);
max_();
min_();
printf("max=%.1f,min=%.1f\n",max_(),min_());
return 0;
}
float max_()
{
int i;
float a[5],max;
max=a[0];
for(i=1;i<=5;i++)
{
if(max<a[i])
max=a[i];
}
return max;
}
float min_()
{
int i;
float a[5],min;
min=a[0];
for(i=1;i<=5;i++)
{
if(min>a[i])
min=a[i];
}
return min;
}
函数和变量被使用前首先要被声明!因此,要在主函数前面先声明函数
函数和变量被使用前首先要被声明!因此,要在主函数前面先声明函数.
问题如下:
对于程序的输入,你在main函数中定义了floata[5]来存放,所以它的作用范围在main内,而你在max()和min()中的又分别重新定义了float a[5],注意这里的a[5]并不是main函数中的a[5]了。
解决如下:
1. 将float a[5]定义为全局的,这样main和max还有min中使用的是同一份
2. 将main函数中的a[5]通过参数形式传递给max和min函数
如有问题可以回复我,如有说的不当之处也请指出。
#include <stdio.h>
float a[5]; //全局的数组,这样max和min函数才能正确执行
int main()
{
float max_();
float min_();
int i;
for(i=0;i<5;i++)
scanf("%f",&a[i]);
max_();
min_();
printf("max=%.1f,min=%.1f\n",max_(),min_());
return 0;
}
float max_()
{
int i;
float max;
max=a[0];
for(i=1;i<=5;i++)
{
if(max<a[i])
max=a[i];
}
return max;
}
float min_()
{
int i;
float min;
min=a[0];
for(i=1;i<=5;i++)
{
if(min>a[i])
min=a[i];
}
return min;
}