C语言编程:求1元2次方程的根

如题所述

#include <stdio.h>

#include <math.h>

int main()

{

double a,b,c;                                /*定义系数变量*/

double x1,x2,p;                              /*定义根变量和表达式的变量值*/

printf("请输入a,b,c:");                      /*提示用户输入三个系数*/

scanf("%lf%lf%lf",&a,&b,&c);                 /*接收用户输入的系数*/

printf("\n");                               /*输出回行*/

p=b*b-4*a*c;                            /*给表达式赋值*/

x1=(-b+sqrt(p))/(2*a);                           /*根1的值*/

x2=(-b-sqrt(p))/(2*a);                           /*跟2的值*/

printf("x1=%f,x2=%f\n",x1,x2);                   /*输出两个根的值*/

}

拓展资料

在实际的求法中,一般还需要判断有无实根,这是可以通过p的值来判断

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-25
#include<stdio.h>
#include<math.h>
main()
{
double a,b,c,x1,x2,temp,temp1;
printf("请输入参数a的值为:\n");
scanf("%lf",&a);
printf("请输入参数b的值为:\n");
scanf("%lf",&b);
printf("请输入参数c的值为:\n");
scanf("%lf",&c);
temp=b*b-4*a*c;
temp1=sqrt(temp);
if(temp<0)
printf("该函数没有实解!")
else if(temp==0)
x1=x2=(b*b-temp1)/2*a
printf("该函数有两个相等的实根!分别为:x1=x2=%lf",x1);
else if(temp>0)
x1=(b*b-temp1)/2*a;x2=(b*b+temp1);
printf("该函数有两个不同的实根,分别为:x1=%lf \n x2=%lf \n",x1,x2);
}

//你试试看,当场发挥,有点不自信。。。本回答被提问者和网友采纳
第2个回答  2012-02-03
ax*x+bx+c=0
#include<stdio.h>
#include<math.h>
int main()
{
double x1,x2;
double a,b,c,dert;
scanf("%lf%lf%lf",&a,&b,&c);
dert=sqrt(b*b-4*a*c);
x1=(-b+dert)/(2*a);
x2=(-b-dert)/(2*a);
printf("%lf %lf\n",x1,x2);
reutrn 0;
}