用C语言编写程序实现一元二次方程的解?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用C语言编写程序实现一元二次方程的解?相关的知识,希望对你有一定的参考价值。
用C语言编写程序实现一元二次方程的解
其中要包含异常的处理,b*b-4*a*c<0时的解
#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++代码希望对你有所帮助!
用java编写求出一元二次方程的解,其中abc用键盘输入。
编程实例:求解一元二次方程ax^2+bx+c=0的解。其中a、b、c在键盘上输入。
1.先编写一个求根类Root。
其中包含成员变量a、b、c。
带参数的构造方法Root(int a,int b,int c)
不带参数的构造方法Root()
计算的方法void calculation()
2.编写Test11类,包含main方法。
编译并运行
以上是关于用C语言编写程序实现一元二次方程的解?的主要内容,如果未能解决你的问题,请参考以下文章