1136 - C语言4.11
求方程式ax2+bx+c=0的实根。
Input
三个用空格隔开的整数a、b、c,保证a不为0,且b2-4ac>0。
Output
输出方程式ax2+bx+c=0的两个实根。所有的实数输出请使用C语言的默认舍入方式保留4位小数,注意行尾输出换行。
Examples
Input
1 3 2
Output
-2.0000 -1.0000
Solution C
#include<stdio.h> int main(){int a,b,c; int disc; double p1,p2; scanf("%d %d %d",&a,&b,&c); if(a!=0){ disc=b*b-4*a*c; p1=-b/(2.0*a); p2=sqrt(disc)/(2.0*a); printf("%.4lf %.4lf\n",p1-p2,p1+p2); } return 0;}
Solution C++
#include <stdio.h> #include <math.h> int main() { int a, b, c, delta; double ans0, ans1, sqrt_delta; scanf("%d %d %d", &a, &b, &c); /* 计算delta的值(b*b-4*a*c) */ delta = b * b - 4 * a * c; sqrt_delta = sqrt(delta); ans0 = (-b - sqrt_delta) / (2.0 * a); ans1 = (-b + sqrt_delta) / (2.0 * a); printf("%.4f %.4f\n", ans0, ans1); return 0; }