|
发表于 2018-1-22 10:31:15
|
显示全部楼层
#include <stdio.h>
#include <math.h>
int main(void)
{
double a, b, c, x1, x2, p, q;
printf("请输入一元二次方程的三个系数:");
scanf("%lf %lf %lf", &a, &b, &c);
p = (-b) / (2*a);
q = sqrt( b*b - 4*a*c) / (2*a);
x1 = p + q;
x2 = p - q;
printf("x1 = %5.2lf\nx2 = %5.2lf", x1, x2);
printf("\n");
}
这个是根据你的稍微改编了一下,个人认为有两个不足的地方,第一个是输入系数的时候不要加转义字符,第二个就是输出的时候要和输入保持一致比较好, 你这个输入是double型, 输出是float型;
#include <math.h>
#include <stdio.h>
int main(void)
{
float a, b, c;
printf("请输入一元二次方程的三个系数:");
scanf("%f %f %f", &a, &b, &c);
float delta;
float x1, x2;
delta = b*b - 4*a*c;
if ( delta > 0 )
{
x1=(-b+sqrt(delta)) / (2*a);
x2=(-b-sqrt(delta)) / (2*a);
printf("该一元二次方程有两个解,x1=%5.2f,x2=%5.2f\n", x1 ,x2);
}
else if ( delta==0 )
{
x1 = (-b) / (2*a);
x2 = x1;
printf("该一元二次方程有唯一解,x1=x2=%5.2f\n", x1);
}
else
{
printf("该一元二次方程无解\n");
}
return 0;
}
这个是可以判断有几个解的, 我也是刚开始学C 一起沟通交流 |
|