c语言 求ax^2+bx+c=0方程的根。a,b,c由键盘输入。

求ax^2+bx+c=0方程的根。a,b,c由键盘输入。
可以求a=0时 和虚跟
帮帮忙,我是新手,希望不要太麻烦,谢谢
我是菜鸟,能不能把程序代码发上来看看,谢谢!!

/*完整程序如下,在VC6.0上编译通过,绝对没问题*/
#include <stdio.h>
#include <math.h>
#include <conio.h>

void main()
{
int a, b, c;
double x1, x2;

printf("input a b c:");
scanf("%d%d%d", &a, &b, &c );

if ( a == 0 )
{
/*方程有一个实根*/
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 );

printf("Answer:\n");
printf("\tx1 = %.2f\n", x1);
printf("\tx2 = %.2f\n", x2 );
}
else if ( k == 0 )
{
/*方程有两相等实根*/

x1 = x2 = ( -b ) / ( 2 * a );

printf("Answer:\n");
printf( "\tx1 = x2 = %.2f\n", x1 );
}
else
{
/*方程有两虚根*/

double p = -b / ( 2 * a );
double q = sqrt( 4 * a * c - b * b ) / ( 2 * a );

printf("Answer:\n");
printf("\tx1 = %.2f + %.2f * i\n", p, q);
printf("\tx2 = %.2f - %.2f * i\n", p, q);
}
}

getch();
}
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-25
#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*b-4*a*c;
if(k>0)
{
m=(-b-sqrt(k))/(2*a); //sqrt:开跟号; m,n既为两实根
n=(-b+sqrt(k))/(2*a);
printf("the result is:m=%f n=%f",m,n);
}

if(k==0)
{
m=n=(-b)/(2*a); //两相等实根
printf("the result is:m=n=%f\n",m);
}
if(k<0)
{
l=4*a*c-b*b;
p=-b/(2*a);q=sqrt(l)/(2*a);
printf("the result is:m=%f+%f*%c\n",p,q,s);
printf("n=%f-%f*%c\n",p,q,s); //求出两虚根
}
}
getch();
}

大体上对 你在遍译一下 我这机器上没tc本回答被提问者采纳
第2个回答  2008-03-19
已经编好了,绝对可以运行的
那些运算的方法就是和数学上的计算方法一样,
你应该看得懂吧:)

#include<stdio.h>
#include<math.h>
main()
{
float a,b,c;
float x1,x2,k; //x1,x2为两实根

printf("Please input a b c:\n");
scanf("%d %d %d",&a,&b,&c);

if(a==0)
{ x1=-c/b;
printf("The result is:\n%f\n",x1);
}
else k=b*b-4*a*c;

if(k>0)
{
x1=(-b-sqrt(k))/(2*a); //sqrt:求平方根;
x2=(-b+sqrt(k))/(2*a);
printf("The result is:\n x1=%f x2=%f\n",x1,x2);
}
else if(k==0)
{
x1=x2=(-b)/(2*a); //有相等实根
printf("The result is:\nx1=x2=%f\n",x1);
}
else if(k<0)
{ x1=(-b-sqrt(-k))/(2*a); //求出两个虚根;
x2=(-b+sqrt(-k))/(2*a);
printf("the result is:\nx1=%f x2=%f\n",x1,x2);
}

}
第3个回答  2008-03-19
思路:
1.先用函数录入abc的值.
2.判断a的值是否为0,如果a=0,则再if(b!=0),x=-c/b,else....
3.if(a!=0),拿公式算!
反正就是把方程的解的所有可能都拿出来,然后判断方程到底是属于哪一类,再按照这一类的公式进行计算!
第4个回答  2020-03-27
#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*b-4*a*c;
if(k>0)
{
m=(-b-sqrt(k))/(2*a);
//sqrt:开跟号;
m,n既为两
实根
n=(-b+sqrt(k))/(2*a);
printf("the
result
is:m=%f
n=%f",m,n);
}
if(k==0)
{
m=n=(-b)/(2*a);
//两相等实根
printf("the
result
is:m=n=%f\n",m);
}
if(k<0)
{
l=4*a*c-b*b;
p=-b/(2*a);q=sqrt(l)/(2*a);
printf("the
result
is:m=%f+%f*%c\n",p,q,s);
printf("n=%f-%f*%c\n",p,q,s);
//求出两虚根
}
}
getch();
}
大体上对
你在遍译一下
我这机器上没tc

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

关于c语言的 求ax的平方+bx+c=0方程的根,a,b,c由键盘输入,设b的平方-4...
if(b*b-4*a*c>=0){ dt=sqrt(b*b-4*a*c);p=-b\/(2*a);q=dt\/(2*a);x1=p+q;x2=p-q;printf("the root of equation%6.2fx*x+%6.2fx+%6.2f=0 is\\n",a,b,c);printf("x1=%6.2f x2=%6.2f\\n",x1,x2);} else printf("the root of equation%6.2fx*x+%6...

C语言编程:求方程ax^2+bx+c=0的实数根.a,b,c由键盘输入,a≠0且b^2...
=0) { k=b*b-4*a*c; if(k>0) { m=(-b-sqrt(k))\/(2*a); \/\/sqrt:开跟号; m,n既为两实根 n=(-b+sqrt(k))\/(2*a);

c语言编程 求一元二次方程的实数根。ax^2+bx+c=0,abc均由键盘读入。
b, c,v; float x[2]={0};\/\/用保存结果 scanf("%f%f%f", &a, &b, &c); v = b*b - 4 * a*c; if (v >= 0)\/\/不管是实数解是否相等,直接输出

...编写:求方程ax2+bx+c=0的实数根。a,b,c由键盘输入,a≠0且b2-4ac>...
void f1(float a1,float a2,float a3);void f2(float b1,float b2,float b3);void f3(float c1,float c2,float c3);float a,b,c,t;printf("Input a=,b=,c=\\n");scanf("a=%f,b=%f,c=%f",&a,&b,&c); \/\/输入格式为a=1,b=5,c=6;t = b*b - 4*a*c;if(fabs(t)<...

求大神解答C语言求方程根
求ax^2+bx+c=0方程的根:(输入a回车,输入b回车,输入c回车,最后回车出结果)include<stdio.h> include<math.h> main(){ float a,b,c,x1,x2;printf("已知方程为:ax^2+bx+c=0.\\n请输入a,b,c:");scanf("%f%f%f",&a,&b,&c);if(b*b-4*a*c>=0){ x1=(-b+(sqrt(b*b-...

c语言程序用函数怎么输出ax2+bx+c=0?
解一元二次方程a x2+ b x + c = 0,a、b、c由键盘输入。分析:对系数a、b、c考虑以下情形 1) 若a = 0:① b < > 0,则x=-c\/b ;② b = 0, 则:① c = 0, 则x无定根;② c < > 0,则x无解。2) 若a < > 0 ;① b2-4 a c > 0,有两个不等的实根;② ...

用c语言编写ax2+bx+c=0的根?
以下是用 C 语言编写的求解一元二次方程 ax^2 + bx + c = 0 的根的程序:include <stdio.h> include <math.h> int main(){ double a, b, c; \/\/ 一元二次方程的系数 double delta; \/\/ 一元二次方程的判别式 double x1, x2; \/\/ 一元二次方程的根 printf("请输入一元二...

用c语言语言求求方程ax^2+bx+c=0的实数根,abc由键盘输入,a不等于0且b...
del=pow (b,2)-4*a*c;if (a==0) if (b==0&&c==0) printf ("If you want,it can be anything~");else if (b==0&&c!=0) {printf ("Get out,don't ask me!\\n");exit (0);} else printf ("%.0lfX+%.0lf=0\\nX=%lf",b,c,-c\/b);\/\/a为0时为一元一次方程 e...

用C语言编程序求ax^2+bx+c=0的根的情况,界面要友好!大神们帮帮忙_百度...
main() { double A,B,C; printf("输入方程系数(A,B,C),数据之间用空格隔开:\\n"); while(1) { scanf("%lf%lf%lf",&A,&B,&C); printf("\\n方程%.2lf*x*x+%.2lf*x+%.2lf=0,根的情况为:\\n",A,B,C); Search(A,B,C); printf("按ESC键盘退出,按任意键继续:\\n"...

相似回答