应用:分段函数求解
好程序
#include <stdio.h> int main() { float x, y; scanf("%f", &x); if(x<2) { y=x; } else if(x<6) { y=x*x+1; } else if(x<10) { y=sqrt(x+1); } else { y=1/(x+1); } printf("%f\n", y); return 0; }
//不好的程序 #include <stdio.h> int main() { float x, y; scanf("%f", &x); if(x<2) { y=x; } if(x>=2&&x<6) { y=x*x+1; } if(x>=6&&x<10) { y=sqrt(x+1); } if(x>=10) { y=1/(x+1); } printf("%f\n", y); return 0; }
求一元二次方程的根(ax2+bx+c=0)
#include <stdio.h> int main() { float a,b,c,x1,x2; scanf("%f %f %f", &a, &b, &c); if ((b*b-4*a*c)>=0) { if ((b*b-4*a*c)>0) { x1=(-b+sqrt(b*b-4*a*c))/(2*a); x2=(-b-sqrt(b*b-4*a*c))/(2*a); printf("两个不等的实根:x1=%.2f x2=%.2f\n", x1, x2); } else { x1=-b/(2*a); printf("两个相等的实根,x1=x2=%.2f\n", x1); } } else { printf("方程无实根!\n"); } return 0; }
求一元二次方程的根——改进后的代码
#include <stdio.h> int main(){ float a,b,c,x1,x2,delta; scanf("%f %f %f", &a, &b, &c); delta = b*b-4*a*c; //好风格 if (delta>=0){ if (delta>0){ x1=(-b+sqrt(delta))/(2*a); x2=(-b-sqrt(delta))/(2*a); printf("两个不等的实根:x1=%.2f x2=%.2f\n", x1, x2); } else{ x1=-b/(2*a); printf("两个相等的实根,x1=x2=%.2f\n", x1); } } else{ printf("方程无实根!\n"); } }