C语言编程 求一元二次方程的解

来源:百度知道 编辑:UC知道 时间:2024/05/14 18:41:21
清高手看一下我编的程序哪有问题:

#include <stdio.h>
int main(void)
{
int a,b,c;
double X,X1,X2;
printf("Input a:");
scanf("%f",&a);
printf("Input b:");
scanf("%f",&b);
printf("Input c:");
scanf("%f",&c);

X=-b/(2*a);
X1=(-b+sqrt(b*b-4*a*c))/(2*a);
X2=(-b-sqrt(b*b-4*a*c))/(2*a);

if (a=0)
printf("该方程不是一元二次方程");
if ((b*b-4*a*c)<0);
printf("该方程无解");
if ((b*b-4*a*c)==0)
printf("X= %f",X);
if ((b*b-4*a*c)>0)
printf("X1=%f, X2=%f",X1,X2);

return 0;
}

#include <stdio.h>
#include <math.h>/*用到数学函数时要把这个包含进来*/

int main(void)
{
int a,b,c;
double X,X1,X2;

printf("Input a:");
scanf("%d",&a); /*%f改成%d*/

printf("Input b:");
scanf("%d",&b); /*%f改成%d*/

printf("Input c:");
scanf("%d",&c); /*%f改成%d*/

if (a==0) /*=改成==*/
printf("该方程不是一元二次方程");
else if ((b*b-4*a*c)<0)
printf("该方程无解");
else if ((b*b-4*a*c)==0)/*应该是先判断后计算*/
{
X=(double)(-b/(2*a));
printf("X= %lf",X);)/*double的格式输出符对应是%lf*/

}
else if ((b*b-4*a*c)>0)
{
X1=(double)((-b+sqrt(b*b-4*a*c))/(2*a));
X2=(double)((-b-sqrt(b*b-4*a*c))/(2*a));
printf("X1=%lf, X2=%lf",X1,X2);
}
getch();

return 0;
}

#include <stdio.h>
#include <math.h>/*用