求助(关于自定义函数位置的问题)

来源:互联网 发布:sqlserver 小计 编辑:程序博客网 时间:2024/05/16 02:18

请问一下这两段程序有什么区别啊!我发现这段程序将定义的f(a,b,c)函数放在main()函数之后编译能过得去但是运行会出现错误,这是怎么回事啊!希望知道的给我知道哈,谢谢!

《求解一元二次方程根的程序》

#include <stdio.h>

#include <MATH.H>
f(float a,float b,float c)
{
float d;
float temp1;
float temp2;
d=b*b-4*a*c;
if(d>0)
{
temp1=(float)(-b+sqrt(d))/(2*a);
temp2=(float)(-b-sqrt(d))/(2*a);
printf("该方程有两个解,分别为:%g , %g\n",temp1,temp2);
printf("%g",d);
}
else if(d==0)
{
temp1=(-b)/2*a;
printf("该方程有一个解为:%g\n",temp1);
}
else
printf("该方程无实数解!\n");
}
void main()
{
float a;
float b;
float c;
printf("请输入方程的三个系数a、b、c:\n");
scanf("%f%f%f",&a,&b,&c);
f(a,b,c);
}