大二计算机作业、
4.4 程序综合举例 【例4.12】输入一个无符号短整数和进制代号(d—十进制、0—八进制、x—十六进制),然后将数进制代号要求输出。 程序代码如下: #include “stdio.h” void main() { unsigned short x; ?? char c; ?? scanf(“%d,%c”,&x,&c);????? /*输入一个无符号整数和进制代号*/ ?? switch(c)?????????????????? /*判断对应的进制代号*/ ?? { case 'd':?printf(“%d\n”,x);??? /*进制代号为d,输出对应十进制数*/ ???????? break; ??? ? case 'o': printf(“%o\n”,x);??? /*进制代号为o,输出对应八进制数*/ ???????? break; ??? case 'x': printf(“%x\n”,x);?/*进制代号为x,输出对应十六进制数*/???????? break; ???? default:? printf(“Input error!\n”); /*进制代号错误提示*/ }} 4.4 程序综合举例 运行结果如下: 6,d↙ 6 6,o↙ 6 6,x↙ 6 6,c↙ Input error! 26,d↙ 26 26,o↙ 32 26,x↙ 1a 第4章 选择结构程序设计 讲师:周刚 TEL选择结构又称为分支结构。 在选择结构程序设计中,根据条件的判断情况需要选择不同的语句组执行。 选择结构类型: (1)条件选择结构:根据给定的条件表达式进行判断,决定执行某个分支中的程序段。由if语句来实现。 (2)开关选择结构:根据给定的整型表达式的值进行判断,然后决定执行多个分支中的某一个分支。由switch语句来实现。 4.1 程序的流程图 4.3 多分支选择语句 4.4 程序综合举例 4.2 IF语句 4.1 程序的流程图 传统流程图符号: 4.1 程序的流程图 N-S流程图符号: 4.1 程序的流程图 【例4.1】求10!的程序。 解题思路: 由于n!=n*(n-1)! 即10!=10*9! 9!=9*8! …… 2!=2*1! 1!=1 4.2 if 语句 4.2.1 if语句的三种格式 1.单分支选择结构 一般形式为: if(表达式) { 语句; } 执行过程:先求解表达式的值,如果表达式的值为真(非0),就执行语句;否则直接执行if语句后面的语句。执行过程如图4.4所示。 4.2 if 语句 【例4.2】求所输入数值的绝对值。 输入数据 解题思路: 首先判断输入数值是否为负数,若为负数,则将取其相反数;否则,正数和零的绝对值是其本身,不予处理。 判断输入数据 <0 取相反数 ≥0 输出结果 4.2 if 语句 【例4.2】求所输入数值的绝对值。 程序为: #include “stdio.h” main() { float score; printf(“Please input a score:\n”); scanf(“%f”,&score); /*输入数值*/ if (score<0) score=-score; /*若输入数值为负数,则取反*/ printf(“The result is: %3.2f\n”,score); } 运行结果如下: Please input a score: -0.01↙ The result is: 0.01 Please input a score: 5.0↙ The result is: 5.00 4.2 if 语句 【例4.3】比较所输入的三个数值的大小,按升序输出。 解题思路: 只须让三个数值两两比较三次,在每次比较的过程中,若第一个数值大于第二个数值,则交换彼此的数值,三次比较完成后,三个数值即符合升序要求。 4.2 if 语句 程序代码如下: #include “stdio.h” Void main() { float x,y,z,temp; printf(“Please input three number:\n”); scanf(“%f,%f,%f”,&x,&y,&z); if (x>y) { temp=x; x=y; y=temp; } /*x>y时交换*/ if (x>z) {temp=x; x=z; z=temp; } /*x>z时交换,x为最小数*/