首页 > 代码库 > (c语法百题16)一元二次方程的实数根

(c语法百题16)一元二次方程的实数根

知识点:

数学函数头文件 #include <math.h>

开平方函数,sqrt()

注意等号 == 与赋值号= 的区别

 

内容: 求一元二次方程(二次项系统不为0)ax2+bx+c=0(a≠0)的实数根

输入说明:

一行三个系数(用空格隔开)

输出说明:

 

先输出(-b+sqrt())/2/a的根,一行一个,如果是相等实根,则输出一个(均保留两位小数)

。若无实根输出No answer!

 

输入样例:

1 1 2

输出样例 :

No answer!

 

 1 #include <stdio.h> 2 #include <math.h> 3 int main() 4 { 5  float a,b,c,d,x1,x2; 6  scanf("%f %f %f",&a,&b,&c); 7  d=b*b-4*a*c; 8  if (d>=0) 9  {10   x1=(-b+sqrt(d))/(2*a);11   x2=(-b-sqrt(d))/(2*a);12   if(x1==x2)13   {14    printf("%.2f\n",x1);15   }16   else17   {18    printf("%.2f\n%.2f\n",x1,x2);19   }20  }21  else 22  {23   printf("No answer!\n");24  }25  return 0;26 }