C语言练习题:三种if语句、嵌套三元运算符

本文涉及到的知识点有:if语句(三种写法)、switch语句、三元运算符(嵌套使用)

本文的题目来源于《全国计算机等级考试二级教程-C语言程序设计》练习题4.25

对于以下函数:

C语言练习题:三种if语句、嵌套三元运算符_第1张图片

编写程序,要求输入x的值,输出y的值。分别用:不嵌套的if语句、嵌套的if语句、if-else语句、switch语句

注:本文为了方便理解,并没有对输入的x值进行限制,所以用户调试的时候请自行将x限定在指定的范围里面,否则程序就不满足题目要求了。如果要让程序自动限制,只需在最外层嵌套一个if函数对x的大小进行判定

(1)不嵌套的if语句

#include
int main() {
	int x, y;
	printf("请输入一个数,要求-5

本题目需要注意的是(-5 < x < 0)这种写法会被解释为(-5

(2)嵌套的if语句

#include
int main()
{
	int x, y;
	printf("请输入一个数,要求-5

(3)if-else语句 

#include 
int main() 
{
    int x, y = 0;
    printf("请输入一个数,要求-5

 “if-else”与“不嵌套的if语句”的区别是 “if-else”一旦某个条件满足,后续的条件就不会检查

而“不嵌套的if语句”的每个if语句都是独立的,会检查每个条件,即使前面的条件已经满足,仍然会检查后续的条件

(4)switch语句

#include 
int main() {
	int i, x, y;
	printf("请输入一个数,要求-5 0) ? 1 : (x == 0) ? 0 : -1;
	switch (i)
	{
	case 1:y = x + 1; break;
	case 0:y = x - 1; break;
	case -1:y = x; break;
	}
	printf("y=%d", y);
}

嵌套三元运算符  i = (x > 0) ? 1 : (x == 0) ? 0 : -1;

逻辑分解:(x>0) ? 1 : ...如果x>0为真,则i的值为1。如果x>0为假,则进入第二层三元运算符

第二层三元运算符如果x==0为真,则i的值为1;如果x==0为假,则i的值为-1。

逻辑流程图:

if (x > 0){range = 1;}
else if (x == 0){range = 0;}
else {range = -1;}

你可能感兴趣的:(C语言初学,算法,c语言)