4838:习题2-4-8 一元二次方程求根
Time Limit: 1 SecMemory Limit: 12 MB
Submit: 173Solved: 88
Description
求方程式ax2+bx+c=0的根。
Input
三个用空格隔开的整数a、b、c,分别表示一元二次方程的系数,并保证a不为0。
Output
方程式ax2+bx+c=0的根,若有两个不同的实根,则输出这两个实根,用空格隔开;若有一个实根,请直接输出;若没有实根,请输出“no answer”(请注意不需要输出引号)。所有的实数输出请使用C语言的默认舍入方式保留4位小数,注意行尾输出换行。
Sample Input
8 -25 4
Sample Output
0.1692 2.9558
参考:https://zhidao.baidu.com/question/488806343577608812.html
#include<stdio.h>
#include<math.h>
void prime(float a,float b,float c){
float flag=b*b-4*a*c;
//printf("%f",flag);
if(flag==0){//一个实根
float x;
x=(-b)/(2*a);
printf("%.4f\n",x);
}
if(flag>0)//两个不同的根
{
float x1,x2;
x1=((-b)+sqrt(flag))/(2*a);
x2=((-b)-sqrt(flag))/(2*a);
printf("%.4f %.4f\n",x2,x1);
}
else printf("no answer\n");
}
int main(){
float a,b,c;
scanf("%f%f%f",&a,&b,&c);
prime(a,b,c);
return 0;
}