用if语言解一元二次方程的C语言程序,在线等~~...

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用if语言解一元二次方程的C语言程序,在线等~~...相关的知识,希望对你有一定的参考价值。

给定方程ax^2+bx+c=0,试编写程序根据键盘输入实数a、b、c,能输出其根,要求:
如果该方程有两个不同的根,则输出形式为"the Answer of ax^2+bx+c=0 is x1=根1,x2=根2"
如果该方程有两个相同的根,则输出形式为"the Answer of ax^2+bx+c=0 is x1=X2=根"
如果该方程无解,则输出形式为"the Answer of ax^2+bx+c=0 is none",其中a、b、c均为键盘输入,输出结果保留两位小数。

希望有用,谢谢采纳 ^_^

# include<stdio.h>
# include<math.h>
int main()

void root2(double a,double b,double disc); //定义方程有两个根时的函数
void root1(double a,double b); //定义方程只有一个根时的函数
void root0(); //定义方程没有实数解是的函数
double a,b,c,disc;
printf("请输入a,b,c的值:");
scanf("%lf %lf %lf",&a,&b,&c);
if(a==0) //一元二次方程二次项系数不为0

printf("data error\n");

else

printf("the Answer of ax^2+bx+c=0 is ");

disc=b*b-4*a*c;
if(disc>0)
root2(a,b,disc);
else if(fabs(disc) < 1e-6)
root1(a,b);
else
root0();

return 0;

void root2(double a,double b,double disc)

double x1,x2;
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
printf("x1=%.2f, x2=%.2f\n",x1,x2);

void root1(double a,double b)

double x;
x=(-b)/(2*a);
printf("x1=x2=%.2f\n",x);

void root0()

printf("none\n");
参考技术A #include<stdio.h>
#include<math.h>
int main()

int a,b,c,x,p,x1,x2;
printf("输入三个实数:\n");
scanf("%d%d%d",&a,&b,&c);
p=b*b-4*a*c;
if(p<0)
printf("the Answer of a*x*x+b*x+c=0 is none");
else if(p=0)
x1=(-b)/2.0*a;
printf("the Answer of a*x*x+b*x+c=0 is x1=x2=%d\n",x);

else if(p>0)
x1=(-b-p)/2.0*a;
x2=(-b+p)/2.0*a;
printf("the Answer of ax^2+bx+c=0 is x1=%d,x2=%d",x1,x2);

return 0;


如果可以就采纳吧,这可是我一个字母一个字母敲得呀~~祝你学习进步~~本回答被提问者采纳

用C语言编写程序实现一元二次方程的解?

用C语言编写程序实现一元二次方程的解
其中要包含异常的处理,b*b-4*a*c<0时的解

#include <stdio.h>
#include <math.h>
void main ()

double sqrt(double x);
int a,b,c;
double x1,x2,x,e,d,g,f;
scanf("%d %d %d",&a,&b,&c);
d=b*b-4*a*c;
if (a==0)
if (b!=0)
x=-(double)c/(double)b;
if (x==0)
x=-x;
printf("x=%.6lf\n",x);
else
printf("x=%.6lf\n",x);

else
printf("Input error!\n");
else if (d<0)
d=-d;
e=sqrt(d);
g=-(double)b/(2*(double)a);
f=e/(2*a);
if (g!=0)
printf("x1=%.6lf+%.6lfi\nx2=%.6lf-%.6lfi\n",g,f,g,f);
else
printf("x1=%.6lfi\nx2=-%.6lfi\n",f,f);
else if (d==0)
x1=x2=-b/(2*a);
printf("x1=x2=%.6lf\n",x1);
else
e=sqrt(d);
x1=(-b+e)/(2*a);
x2=(-b-e)/(2*a);
printf("x1=%.6lf\nx2=%.6lf\n",x1,x2);


这个可以,但也许不够简便
参考技术A #include <math.h>
main()

int z=0;
while(z==0)

float a,b,c,disc,x1,x2;
printf("input a,b,c:");
scanf("%f,%f,%f",&a,&b,&c);
disc=b*b-4*a*c;
if(disc>=0)z=1;

x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
printf("\nx1=%6.2f x2=%6.2f\n",x1,x2);

我高数学的不好,当b*b-4*a*c<0时的解我不会求~~~~只能让重输..
参考技术B # include<iostream.h>
# include<math.h>

void main(void)

double a,b,c,x1,x2;
cout<<"input a,b,c:";
cin>>a>>b>>c;
double s=b*b-4*a*c;
if(s>=o)

double sqrtVal=sqrt(s);
x1=(-b+sqrtVal)/(2*a);
x2=(-b-sqrtVal)/(2*a);
cout<<"x1="<<x1<<endl;
cout<<"x2="<<x2<<endl

else
cout<<"this question does not hava a real answer"<<endl;


这个是c++代码希望对你有所帮助!

以上是关于用if语言解一元二次方程的C语言程序,在线等~~...的主要内容,如果未能解决你的问题,请参考以下文章

怎样用C语言编一个解一元二次方程的程序?

用C语言编写程序实现一元二次方程的解?

C语言编程 解一元二次方程

用c语言求一个四元二次方程解的个数

C语言求一元二次方程解的函数问题 新手题

用C语言编制的求模逆元的扩展欧几里德算法,只要能基本上实现这个功能就行