一道c程序题,用三个函数求方程的根,编程错误,大神求解,谢谢
#include<stdio.h>#include<math.h>floatX2;intmain(){floatroot_1(float);floatroot_2(flo...
#include <stdio.h>
#include <math.h>
float X2;
int main()
{
float root_1(float );
float root_2(float );
float root_3(float );
extern float a,b,c;
float m,x1;
printf("enter a,b,c:\n");
scanf("%f%f%f",&a,&b,&c);
m=b*b-4*a*c;
if(m>0) x1=root_1(m);
else if(m==0) x1=root_2(m);
else x1=root_3(m);
printf("x1=%f,x2=%f",x1,X2);
return 0;
}
float a,b,c;
float root_1(float )
{
float n;
n=sqrt(m);
p=-b/(2*a);q=n/(2*a);
x1=p+q;X2=p-q;
return x1;
}
float root_2(float )
{
x1=-b/(2*a);X2=-b/(2*a);
return x1;
}
float root_3(float )
{
printf("has no real root");
} 展开
#include <math.h>
float X2;
int main()
{
float root_1(float );
float root_2(float );
float root_3(float );
extern float a,b,c;
float m,x1;
printf("enter a,b,c:\n");
scanf("%f%f%f",&a,&b,&c);
m=b*b-4*a*c;
if(m>0) x1=root_1(m);
else if(m==0) x1=root_2(m);
else x1=root_3(m);
printf("x1=%f,x2=%f",x1,X2);
return 0;
}
float a,b,c;
float root_1(float )
{
float n;
n=sqrt(m);
p=-b/(2*a);q=n/(2*a);
x1=p+q;X2=p-q;
return x1;
}
float root_2(float )
{
x1=-b/(2*a);X2=-b/(2*a);
return x1;
}
float root_3(float )
{
printf("has no real root");
} 展开
1个回答
展开全部
#include <stdio.h>
#include <math.h>
float X2;
int main()
{
float root_1(float );
float root_2(float );
void root_3( );
extern float a,b,c;
float m,x1;
printf("enter a,b,c:\n");
scanf("%f%f%f",&a,&b,&c);
m=b*b-4*a*c;
if(m>0) x1=root_1(m);
else if(m==0) x1=root_2(m);
else
root_3();
printf("x1=%f,x2=%f",x1,X2);
return 0;
}
float a,b,c;
float root_1(float m) //加参数, 下同,还有几处错误,认真找找
{
float n,p,q,x1;
n=sqrt(m);
p=-b/(2*a);q=n/(2*a);
x1=p+q;X2=p-q;
return x1;
}
float root_2(float m)
{
float x1,x2;
x1=-b/(2*a);X2=-b/(2*a);
return x1;
}
void root_3()
{
printf("has no real root");
}
更多追问追答
追问
它说数据从double变成float会丢失数据 怎么办
追答
把程序里面的float 全改为double 就可以了
但是一般没什么关系,你也可以强制类型转换
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询