编程求ax2+bx+c=0方程的根,要求a,b,c从键盘入手,程序中求出方程的所有解

如题所述

#include "stdio.h"
#include "math.h"

void main()

{

float a;
float b;
float c;
//定义一元二次方程3个系数

float x1, x2;
//存一元二次方程的解

float delta ;

//存一元二次方程的判根式

/*从用户处获取输入*/
printf("分别输入3个系数:\n");
scanf("%f%f%f", &a, &b, &c );
delta= b*b - 4*a*c;
printf("△=%f",delta);

if ( delta > 0 )
{
x1 = ( -b + sqrt(delta) ) / (2*a);
x2 = ( -b - sqrt(delta) ) / (2*a);

printf("此方程有两个不同解:\n" );
printf("x1 = %f, x2 = %f\n", x1, x2);

}

else if ( delta == 0)
{
x1 = (-b) / (2*a);
x2 = x1;

printf("此方程有一个解:\n");
printf("x1 = x2 = %f \n", x1);
}

else
{
printf("方程无解\n");
}

}
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-08-06
// 求一元二次方程的根.cpp : Defines the entry point for the console application.
//

#include <stdafx.h>
#include <math.h>
#include <iostream.h>
#include <stdio.h>
void solv_quadr_equa(float a,float b,float c); //函数声明,此函数用于求方程根

int main(int argc, char* argv[])
{ float x,y,z;
printf ("请输入a,b,c三个数"); //系统提示输入三个数
scanf ("%f%f%f",&x,&y,&z); //将三个数赋值给变量x,y,z。
solv_quadr_equa(x,y,z); //调用求根函数进行求解方程根
return 0;
}
void solv_quadr_equa(float a,float b,float c)
{
if(a==0)
if(b==0)
printf("no answer due to input eeor\n");//如果a,b皆为0,提示输入错误
else
printf("the single root is %f\n",-c/b);//如果a=0且b!=0,输出单根-c/b
else //如果a,b皆不为0则按以下步骤求根
{
double disc,twoa,term1,term2;
disc=b*b-4*a*c; //判断式
twoa=2*a; //分母2a
term1=-b/twoa;
term2=sqrt(fabs(disc))/twoa ;
if (disc<0.0) //b方减4ac为负数 无实根,输出虚根的实部和虚部
printf("complex root:\n real part=%f\n image part=%f\n",term1,term2);
else //b方减4ac大于等于0 有两个实根
printf("real root:\n root1=%f\n root2=%f\n",term1+term2,term1-term2);
}
}
用c语言或c++编程。 经编辑链接,测试无错。直接复制到空的工程里面即可运行,呵呵,你试一试,加油。本回答被网友采纳
第2个回答  2011-08-22
什么语言?

编程求ax2+bx+c=0方程的根,要求a,b,c从键盘入手,程序中求出方程的所有...
void main(){ float a;float b;float c;\/\/定义一元二次方程3个系数 float x1, x2;\/\/存一元二次方程的解 float delta ;\/\/存一元二次方程的判根式 \/*从用户处获取输入*\/ printf("分别输入3个系数:\\n");scanf("%f%f%f", &a, &b, &c );delta= b*b - 4*a*c;printf("△=%f...

c语言 求ax^2+bx+c=0方程的根。a,b,c由键盘输入。
\/*方程有一个实根*\/ x1 = -c \/ b;printf( "Answer:%.2f", x1 );} else { double k = b * b - 4 * a * c;if ( k > 0 ){ \/*方程有两实根*\/ x1 = ( -b - sqrt( k ) ) \/ ( 2 * a ); \/*sqrt:开跟号; *\/ x2 = ( -b + sqrt( k ) ) \/ ( 2 * a...

C语言编写一个程序求解一元二次方程ax2+bx+c=0的根。要求系数a,b,c从...
jud; printf ("输入二次方程的三个系数(第一个不能为0):"); scanf ("%f %f %f", &a, &b, &c); jud = b * b - 4 * a * c; \/\/根的判别式 if (jud > 0) { printf ("该方程有两个不相等的实根:\\n"); printf ("x1...

求解任意的一元二次方程ax2+bx+c=0的根,其中a,b,c的值由键盘输入。要求...
x2=(-b-sqrt(d))\/(2.0*a);printf("x1=%.2lf\\nx2=%.2lf\\n",x1,x2);} } return 0;}

用c语言编写:求方程ax2+bx+c=0的实数根。a,b,c由键盘输入,a≠0且b2...
f1(a,b,c);else { if(t>1e-6) \/\/ t>0的情况 f2(a,b,c);else f3(a,b,c);} } void f1(float a1,float a2,float a3){ x1 = x2 = -a2\/(2*a1);printf("x1 = x2 = %f\\n",x1);} void f2(float b1,float b2,float b3){ float disc;disc = sqrt(b2*b2-4...

求ax^2+bx+c=0方程的根。a,b,c由键盘输入,设b^2-4ac>0
如下:include<stdio.h> include<math.h> disc=b*b-4*a*c;p=-b\/(2.0*a);q=sqrt(disc)\/(2.0*a);x1=p+q;x2=p-q;printf("x1=%7.2f\\nx2=%7.2f\\n",x1,x2);return 0。

C语言编写一个程序求解一元二次方程ax2+bx+c=0的根。要求系数a,b,c从...
} else if (disc == 0) { x1 = x2 = -b \/ (2 * a);printf("方程有两个相等的实根: x1=x2=%.2f\\n", x1);} else { printf("方程无实根\\n");} return 0;} 在运行程序时,用户需要从键盘输入方程的系数a, b, c,程序会自动计算并输出方程的根。其中,如果判别式disc大于0...

C语言编程:求方程ax^2+bx+c=0的实数根.a,b,c由键盘输入,a≠0且b^2...
includ<stdio.h> main() { int a,b,c; float m,n,k,l,p,q; char s; s='i'; printf("input a b c:\/n"); scanf("%d %d %d",&a,&b,&c); if(a==0) { m=-c\/b; printf("the result is:%f",m); } if(a!=0) { k=b...

编写一程序有方程ax2+bx+c=0;输入a,b,c,判断是否有实根,如果有,求出...
请输入常数项c"<<endl; cin>>c; det=b*b-4*a*c; if(det>0) { x1=(float)((-b+sqrt(det))\/(2*a)); x2=(float)((-b-sqrt(det))\/(2*a)); cout<<"方程有两个不同根:"<<'\\n'<<x1<<'\\t'<<x2<<'\\t'<<endl; } if (0==det) { x1=(float)(b\/(...

用Java求一元二次方程ax2+bx+c=0的根,要求a、b、c从控制台输入
if(b*b - 4*a*c < 0){ System.out.println("对不起,无解!");}else if(b*b - 4*a*c == 0){ System.out.println("此方程解x=" + -b\/(2*a));}else{ System.out.println("此方程解x1=" + ((-b+ "\/"+ 2*a +"+√(" + (b*b - 4*a*c)) +")\/" +(2*a)...

相似回答