该程序的功能为:求方程ax2+bx+c=0的解 要求:在主函数中,通过键盘分别输入三个整数存入全局变量(a,b,c)中,调用“一元二次方程的求根”子函数“int root()”;对该“一元二次方程”求根值,并在主函数中输出其对应根值
#include<stdio.h>
#include<math.h>
void f1(int a,int b,int c);
void f2(int a,int b,int c);
void f3(int a,int b,int c);
int a,b,c;
int main()
{
double t;
printf("请输入a b c\n");
scanf("%d %d %d",&a,&b,&c);
printf("原方程为%dx^2+%dx+%d=0\n",a,b,c);
t=b*b-4*a*c;
if(t>0)
{
f1(a,b,c);
}
if(t==0)
{
f2(a,b,c);
}
if(t<0)
{
f3(a,b,c);
}
return 0;
}
void f1(int a,int b,int c)
{
double x1,x2,t;
t=b*b-4*a*c;
x1=(-b+sqrt(t))/(2*a);
x2=(-b-sqrt(t))/(2*a);
printf("x1=%f,x2=%.2f",x1,x2);
}
void f2(int a,int b,int c)
{
double x1,x2,t;
t=b*b-4*a*c;
x1=(-b+sqrt(t))/(2*a);
x2=x1;
printf("x1=x2=%.2f",x1);
}
void f3(int a,int b,int c)
{
printf("无实根\n");
}
#include<stdio.h>
#include<math.h>
float a,b,c;
void m(float &x1,float &x2)
{
x1=(-b-sqrt(b*b-4*a*c))/(2*a);
x2=(-b+sqrt(b*b-4*a*c))/(2*a);
}
void m1(float &x)
{
x=(-b)/2*a;
}
void main()
{
double sum;
printf("请输入a,b,c系数:");
scanf("%f%f%f",&a,&b,&c);
printf("方程为:%2.2fx^2+%2.2fx+%2.2f=0\n",a,b,c);
sum=b*b-4*a*c;
float x1,x2;
if(sum>0)
{
m(x1,x2);
printf("方程有两个根 x1=%.2f,x2=%.2f\n",x1,x2);
}
else if(sum==0)
{
m1(x1);
printf("方程有一个根 x=%.2f,\n",x1);
}
else printf("方程无解!!!\n");
}