学了3天C写的一个练习题,老师们请指教
c语言吧
全部回复
仅看楼主
level 1
极地暖茶 楼主
/*一元二次方程*/
# include <stdio.h>
# include <math.h>
int main(void)
{
int a, b, c;
float delta, x1, x2;
printf("**************************\n");
printf("一元二次方程计算器\n");
printf("ax^2+bx+c=0\n");
printf("**************************\n");
printf("请输入a,b,c的值(中间以空格分隔):");
scanf("%d %d %d", &a, &b, &c);
delta = b*b - 4*a*c;
if(delta > 0)
{
x1 = (-b+sqrt(delta)) / (2*a);
x2 = (-b-sqrt(delta)) / (2*a);
printf("有两个根x1=%f, x2=%f\n", x1, x2);
}
else if(delta == 0)
{
x1 = x2 =(-b) / (2*a);
printf("一个解!x1=%f\n", x1);
}
else
printf("无实根!\n");
return 0;
}
乱写的,请多指教
2013年01月04日 02点01分 1
level 11
sqrt里面好像是double吧。乱说的。。。。
2013年01月04日 02点01分 2
level 1
极地暖茶 楼主
double试过,float也试过,运行都正常,vc++6.0
2013年01月04日 03点01分 3
level 11
浮点数一般不直接与0比较 因为计算的时候有精度丢失 最终答案是不精确的 一般是 fabs(data)<1e-6什么的
2013年01月04日 03点01分 4
[哈哈]
2013年01月04日 08点01分
level 12
顶楼上,一般不跟0比较。
2013年01月04日 07点01分 5
level 3
四楼正解
2013年01月04日 07点01分 6
level 1
极地暖茶 楼主
谢谢几位的指点,我也是初学,这回又知道了一个知识点,多谢多谢
2013年01月08日 13点01分 7
1