C语言程序,谁能帮改正一下.

来源:百度知道 编辑:UC知道 时间:2024/05/31 02:39:42
#include<stdio.h>
#include<math.h>
main()
{
float a,b,c,x1,x2;
printf("please input a and b and c in ax*x+bx+c=0:\n");
scanf("%f%f%f",&a,&b,&c);
x1=(-b+pow((b*b-4*a*c),1/2))/(2*a);
x2=(-b-pow((b*b-4*a*c),1/2))/(2*a);
if(x1==x2)
printf("answer is %f \n",x1);
else
printf("answer is %f %f \n",x1,x2);
getch();
}

是一个求一元二次方程的程序,看下哪里错了,每次运行完都有出现
pow:DOMAIN error

把改正的发上来,并说明我错的原因.谢谢

#include<stdio.h>
#include<math.h>
int main()
{
float a,b,c,x1,x2;
printf("please input a and b and c in ax*x+bx+c=0:\n");
scanf("%f%f%f",&a,&b,&c);
x1=(-b+sqrt(b*b-4*a*c))/(2*a);
x2=(-b-sqrt(b*b-4*a*c))/(2*a);
if(x1==x2)
printf("answer is %f \n",x1);
else
printf("answer is %f %f \n",x1,x2);
getchar();
return 0;
}

程序不严谨,下面的可以实现

/**运行结果为:
请输入方程a*x*x+b*x+c=0三个系统a,b,c的值:
1 -2 1
您输入的方程为: 1.00*x*x+-2.00*x+ 1.00=0.
方程的根为:
x1=x2= 1.00.
*/
#include <stdio.h>
#include <math.h>
main()
{
float a,b,c,delta,real;
printf("请输入方程a*x*x+b*x+c=0三个系统a,b,c的值:\n");
scanf("%f%f%f",&a,&b,&c);
printf("您输入的方程为:%5.2f*x*x+%5.2f*x+%5.2f=0.\n",a,b,c);
real=-2*a/b;
delta=b*b-4*a*c;
prin