3i语句和条件运算符 i语句 案例31输入任意三个整数numl、mum2、num3,求三个数中的最 大值。 /*案例代码文件名:AL31C。*/ 倖*功能:说明i语句的格式。* main( fint numl, num2, numb, max printf("Please input three numbers: " scanf(%od, %d, %od", &numl, &num2, &num3) if(numI>num2) maxenuml max-num2 if (num>max 上 maxmum printf( "The three numbers are: %d, %od, %od n", numl, num2, num3) printf(" max=od n", max) 下=顶
返回本章首页 下一页 上一页 3 if语句和条件运算符 一、 if语句 [案例3.1] 输入任意三个整数num1、num2、num3,求三个数中的最 大值。 /*案例代码文件名:AL3_1.C。*/ /*功能:说明if 语句的格式。*/ main() {int num1,num2,num3,max; printf("Please input three numbers:"); scanf("%d,%d,%d",&num1,&num2,&num3); if (num1>num2) max=num1; else max=num2; if (num3>max) max=num3; printf("The three numbers are:%d,%d,%d\n",num1,num2,num3); printf("max=%d\n",max); }
[案例32输入任意三个数numl、num2、mum3,按从小到大的顺序 排序输出。 /*案例代码文件名:AL32C。*/ maino fint numl, num2, num3, temp; printf("Please input three numbers scanf(%od, %od, %od", &numl, &num2, &num3) if(numI>num2)(temp=numl; num1=num2; num2==temp; 1 if(num2>numb)(temp=num2; num2-num3; num=temp; 1 if(numI>num2)(temp=numl; numl =num2; num2=temp; 1 printf(" Three numbers after sorted: %od, %od, %odn", numl, num2, num3) 程序运行情况如下: 上 Please input three numbers: 11, 22, 18K Three numbers after sorted 11.18.22 下=顶
返回本章首页 下一页 上一页 [案例3.2]输入任意三个数num1、num2、num3,按从小到大的顺序 排序输出。 /*案例代码文件名:AL3_2.C。*/ main() {int num1,num2,num3,temp; printf("Please input three numbers:"); scanf("%d,%d,%d",&num1,&num2,&num3); if (num1>num2) {temp=num1;num1=num2;num2=temp;} if (num2>num3) {temp=num2;num2=num3;num3=temp;} if (num1>num2) {temp=num1;num1=num2;num2=temp;} printf("Three numbers after sorted: %d,%d,%d\n",num1,num2,num3); } 程序运行情况如下: Please input three numbers:11,22,18↙ Three numbers after sorted: 11,18,22
1.i语句的一般格式 if(表达式 {语句组1; else {语句组2;} 1)i语句中的“表达式”必须用“(”和“)括起来。 (2)else子句(可选)是i语句的一部分,必须与i配对使用,不 能单独使用。 (3)当if和else下面的语句组,仅由一条语句构成时,也可不使 用复合语句形式(即去掉花括号) 2.i语句的执行过程 (1)缺省else子句时 时,则执行语句组1否则直接转向找平分3复3 l(a所示
返回本章首页 下一页 上一页 1.if语句的一般格式 if(表达式) {语句组1;} [else {语句组2;}] (1)if语句中的“表达式”必须用“(”和“)”括起来。 (2)else子句(可选)是if语句的一部分,必须与if配对使用,不 能单独使用。 (3)当if和else下面的语句组,仅由一条语句构成时,也可不使 用复合语句形式(即去掉花括号)。 2.if语句的执行过程 (1)缺省else子句时 当“表达式”的值不等于0(即判定为“逻辑真”) 时,则执行语句组1,否则直接转向执行下一条。如图3- 1(a)所示
(2)指定else子句时 当“表达式”的值不等于0(即判定为“逻辑真” 时,则执行语句组1,然后转向下一条语句;否则,执行 语句组2。如图3-1(b所示。 3.i语句的嵌套与嵌套匹配原则 if语句允许嵌套。所谓if语句的嵌套是指,在“语句 组1或(和)“语句组2中,又包含有ⅱ语句的情况。 if语句嵌套时,else子句与if的匹配原则:与在它上 面、距它最近、且尚未匹配的ⅱ配对。 为明确匹配关系,避免匹配错误,强烈建议:将内 嵌的i语句,一律用花括号括起来 上 [案例33]写一程序,从键盘上输入1年份year(4位 进制数),判断其是否闰年。闰年的条件是:能被4 但不能被100整除,或者能被400整除。 下=顶
返回本章首页 下一页 上一页 (2)指定else子句时 当“表达式”的值不等于0(即判定为“逻辑真”) 时,则执行语句组1,然后转向下一条语句;否则,执行 语句组2。如图3-1(b)所示。 3.if语句的嵌套与嵌套匹配原则 if语句允许嵌套。所谓if语句的嵌套是指,在“语句 组1”或(和)“语句组2”中,又包含有if语句的情况。 if语句嵌套时,else子句与if的匹配原则:与在它上 面、距它最近、且尚未匹配的if配对。 为明确匹配关系,避免匹配错误,强烈建议:将内 嵌的if语句,一律用花括号括起来。 [案例3.3] 写一程序,从键盘上输入1年份year(4位十 进制数),判断其是否闰年。闰年的条件是:能被4整除、 但不能被100整除,或者能被400整除
算法设计要点: (1)如果Ⅹ能被Y整除,则余数为0,即如果X% Y的值等于0,则表示Ⅹ能被Y整除! (2)首先将是否闰年的标志leap预置为0(非闰年), 这样仅当year为闰年时将leap置为1即可。这种处理两种状 态值的方法,对优化算法和提高程序可读性非常有效, 请读者仔细体会。参考程序如下: /*案例代码文件名:AL33C。*/ /*功能:说明i语句的嵌套格式和用法。* maino fint year, leap=0 +ap=0:预置为非闰年 printf("Please input the year: scanf("%od", &year) 下=顶
返回本章首页 下一页 上一页 算法设计要点: (1)如果X能被Y整除,则余数为0,即如果X% Y的值等于0,则表示X能被Y整除! (2)首先将是否闰年的标志leap预置为0(非闰年), 这样仅当year为闰年时将leap置为1即可。这种处理两种状 态值的方法,对优化算法和提高程序可读性非常有效, 请读者仔细体会。参考程序如下: /*案例代码文件名:AL3_3.C。 */ /*功能:说明if语句的嵌套格式和用法。 */ main() {int year,leap=0; /* leap=0:预置为非闰年*/ printf("Please input the year:"); scanf("%d",&year);