c语言编写一元2次方程。

Python021

c语言编写一元2次方程。,第1张

程序想法没错,但设计的时候有点失误。

void

main()

{

float

a=0,b=0,c=0,d=0,x1=0,x2=0,e=0/*定义变量*/

printf("axe2+bx+c=0,(a,b,c):\n")/*提示输入3个数*/

scanf("%f,%f,%f",&a,&b,&c)/*输入的时候用float型

*/

e=sqrt(d)/*根号d

*/

x1=(-b+e)/(2*a)/*计算方程,公式有点不点,逻辑*/

x2=(-b-e)/(2*a)/*计算方程*/

printf("\n

positive:\n

x1=%f,\n

negative:\nx2=%f",x1,x2)/*输出x1

x2,输出的时候也要用float型*/

}

else

printf("equation")/*方程无解*/

getch()

}

//经修改,可以正常运行,

还有建议下,你就在定义变量的时候不要一大串一起定义类型,

有时候变量的类型是不无法隐型转换的,就会出错。

就像程序里面的,开根号又不一定都开出个整数,大多都是带小数的,就应该定义成float型,

最后的解也会直接化成带小数的,要是你用long(长整型,也是整型的一种),

那小数点后面就将被程序自动省略,那问题可就大了,呵呵,。

还在做为printf输出的时候,要给点提示,不然人家也不知道,这a,b,c是干嘛用的。

#include <stdio.h>

#include <math.h>

int main(void)

{

int a, b, c //定义一元二次方程的三个数值;

printf("请依次输入一元二次方程的三个参数a b c,中间以空格隔开\n")

scanf("%d %d %d", &a, &b, &c) //依次输入一元二次方程的三个参数

double delta = b*b - 4*a*c //定义delta的值为b*b - 4*a*c

double x1 = (-b + sqrt(delta))/(2 * a)

double x2 = (-b - sqrt(delta))/(2 * a)

if (delta>0) //delta大于0时,方程有两个解

{

printf("一元二次方程有两个解\n")

printf("一元二次方程的第一个解,x1 = %f\n",x1)

printf("一元二次方程的第二个解,x2 = %f\n",x2)

}

else if (delta ==0) //delta等于0,方程有两个相同的解

{

printf("一元二次方程有两个相同的解\n")

printf("一元二次方程的解为x1 = x2 =%f\n",x1)

}

else //delta小于0时,方程没有解

{

printf("一元二次方程没有解\n")

}

return 0

}