解题思路:(1)直接利用if-else的嵌套语句(2)利用级联的if-else语句(尤其是分段函数类型)

注意事项:嵌套/级联的if-else语句要注意  条件表达式   的书写方式。

               例如:if(1<=x<10)  是否表示 ——“如果x大于等于1小于10”     答案:否,该语句只表示真或假(非0或0)

               原因:计算机只能识别二进制,即0和1,1代表真,0代表假。以if(1<=x<10)为例,若我们输入11,那是否执行紧跟在该条件后面的语句呢,换句话说此                           时的返回值是0还是1呢?答案:执行(换句话说:返回值是1)。当输入11时,先对  1<=11  做判断,判断结果为真,即返回值为1,再用该返回                             值1同10比较,结果也为真,所以当输入11时,判断语句  if(1<=x<10)为真。

                         若要表示——“如果大于等于1小于10”呢?正确答案:if(1<=x&&x<10)


参考代码:

#include<stdio.h>                                       

int main()

{

int x,f;

scanf("%d",&x);

if(x<1){

    f=x;

}

else if(1<=x<10){             

    f=2*x-1;

}

else{

    f=3*x-11;

}

printf("%d\n",f);

return 0;

}

只要输入一个大于等于1的数,永远只执行else-if(1<=x<10)后面的2*x-1

修正方法:将else-if(1<=x<10)改成if(1<=x&&x<10)即可


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论