? ? ? “21天好习惯”第一期-4
? 今天是准备撬开C语言大门的第四天,短短四天也可以产生巨大的影响。
稍微写了一下 一下水仙数
使用条件语句来求一个自拟的二元一次方程的两个根值。
?#include?<stdio.h> #include?<math.h> int?main() { ????const?double?zero=1.0e-7; ????double?a,b,c,d,r,l,x1,x2;
????printf("请输入一元二次方程的系数(such?as?1,2,3):"); ????scanf("%lf,%lf,%lf",&a,&b,&c);
????if?(?fabs(a)<zero?)??//a近似为0,方程则不是一元二次方程 ????{ ????????if?(?fabs(b)<zero?)?//b值近似为0,方程则无解 ????????????printf("输入有误,方程无解!\n"); ????????else ????????{ ????????????x1=-c/b; ????????????printf("x=%f\n",x1); ????????} ????} ????else??//a不为0,方程则为一元二次方程 ????{ ????????d=b*b-4*a*c; ????????if?(d>0)????????//则方程有两个不同的实根 ????????????{ ????????????????x1=-b/(2*a)+sqrt(d)/(2*a); ????????????????x2=-b/(2*a)-sqrt(d)/(2*a); ????????????????printf("x1=%f\nx2=%f\n",x1,x2); ????????????} ????????else ????????????if?(?fabs(d)<zero?)??//d的值近似为0,则有两个相同的实根 ????????????{ ????????????????x1=-b/(2*a); ????????????????printf("x1=x2=%f\n",x1); ????????????} ????????????else????????????????//方程无实根 ????????????{ ????????????????r=-b/(2*a); ????????????????l=sqrt(-d)/(2*a); ????????????????printf("x1=%f?+?%f?i\n",r,l); ????????????????printf("x2=%f?-?%f?i\n",r,l);
????????????} ????} ????return?0; }
|