任务代码:
关于分段函数的求解:
题目:
#include <stdio.h>
#include <math.h>
int main ( )
{
double x, y;
scanf("%lf", &x);
if (x<2)
y=x;
else if(x<6) //此处已经自然满足x>=2的条件
y=x*x+1;
else if(x<10)
y=sqrt(x+1);
else //自然是x>=10的时候执行下一语句
y=1/(x+1);
printf("%lf\n", y);
return 0;
}
油量监控:
#include <stdio.h>
int main ( )
{
double fuel_reading;
printf("输入油量表读数(0-1): ");
scanf("%lf", &fuel_reading);
//下面加上花括号使if-else能够正确匹配
if (fuel_reading < 0.75)
{
if (fuel_reading < 0.25)
printf("油量低,注意!\n");
}
else
{
printf("高油量,不必停!\n");
}
return 0;
}
}
一元二次方程的求解:
#include <stdio.h>
#include <math.h>
int main ( )
{
float a,b,c,d,pr,pi,x1,x2;
scanf("%f %f %f",&a,&b,&c);
printf("a=%f,b=%f,c=%f\n",a,b,c);
if(a==0)
{
if(b!=0)
printf("only one solution x=%f\n", -c/b);
else if(c!=0)
printf("no solution\n");
else
printf("x is any value\n");
}
else
{
d=b*b-4*a*c;
if(d>=0)
{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("x1=%6.2f, x2=%6.2f\n",x1,x2);
}
else
{
pr=-b/(2*a);
pi=sqrt(-d)/(2*a);
printf("x1=%6.2f +%6.2fi\n",pr,pi);
printf("x2=%6.2f -%6.2fi\n",pr,pi);
}
}
return 0;
}
执行情况:
知识总结:
多分支结构经常用于求分段函数的值。
另外能用多分钟尽量拒绝单分支因为这样可以实诚徐避免重复运算!
为了避免误用,最好使每一层内嵌的if语句都有对应的else
心得体会:
iif语句的嵌套,很考验一个人的逻辑归纳能力,网内网运用很好的if语句嵌套,能将繁琐的代码简化很多,这是一种有效的代码优化过程的!
在未来的学习中,多实用if语句的嵌套,可以驯良一个人统筹事情的完整能力!