已知一元二次方程的三个系数,编程求ax2+bc十c=0方程的根,系
数a,b,c的值由键盘输入,构建-个元二次方程的实例,假
设a,b,c的值,使得b2-4ac≥0成立。
#include <stdio.h>
#include<math.h>
int main(void)
{
double a,b,c,d,x1,x2;
scanf("%lf,%lf,%lf",&a,&b,&c);
d=b*b-4*a*c;
if(d>0){
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("x1=%.5f\nx2=%.5f",x1,x2);
}
if(d==0){
printf("x1=x2=%.5f",-b/(2*a));
}
if(d<0){
x1=-b/(2*a);
x2=sqrt(-d)/(2*a);
printf("x1=%.5f+%.5fi\nx2=%.5f-%.5fi",x1,x2,x1,x2);
}
return 0;
}
网上有,输出格式有啥要求呢?
#include <stdio.h>
#include <math.h>
int main()
{
double a,b,c,delta ;
scanf("%lf%lf%lf",&a,&b,&c);
delta = b*b-4*a*c;
if(delta ==0)
printf("有一个根:%.2f",-b/(2*a));
else
printf("有两个根:%.2f,%.2f",(-b-sqrt(delta)) / (2*a),(-b+sqrt(delta)) / (2*a));
}
该回答引用GPTᴼᴾᴱᴺᴬᴵ
你可以使用以下代码来实现一元二次方程的实数根的计算,其中a、b、c分别为方程的系数:
#include <stdio.h>
#include <math.h>
int main()
{
double a, b, c, delta, x1, x2;
scanf("%lf%lf%lf", &a, &b, &c);
delta = b * b - 4 * a * c;
if (delta < 0) {
printf("无实根\n");
} else if (delta == 0) {
x1 = x2 = -b / (2 * a);
printf("x1 = x2 = %.2lf\n", x1);
} else {
x1 = (-b + sqrt(delta)) / (2 * a);
x2 = (-b - sqrt(delta)) / (2 * a);
printf("x1 = %.2lf, x2 = %.2lf\n", x1, x2);
}
return 0;
}
这个程序中,首先使用 scanf() 函数从键盘读入方程的系数,然后计算判别式 delta。接着使用 if/else 语句判断方程的根的情况,如果 delta 小于 0,说明方程无实根;如果 delta 等于 0,说明方程有一个实根;如果 delta 大于 0,说明方程有两个实根。在每种情况下,程序都打印出方程的实根或“无实根”这个信息。