




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章 分支结构的程序设计本章重点 if语句的三种形式 if语句的应用 ifelse语句的应用 ifelse if语句的应用 switch语句的程序流程4.1 if语句的应用if语句形式之一if(表达式) 语句块图4.1 if语句流程图例4.1:从键盘输入一批数,统计正数的和,当输入0时程序结束。分析问题:通过循环输入整数,假设输入变量为x;然后要判断该数是否为0,如果不为0,再判断值是否大于零,如果大于零,加入和。 #includeint main( ) int x,sum=0;scanf(%d,&x);for( ; x ; scanf(%d,&x)if(x0)sum=sum+x;printf(正数总和为:%dn,sum); return 0;4.2 ifelse语句的应用if语句形式之二if(表达式)语句块1else 语句块2图4.4 ifelse语句流程图例4.3:判断从键盘输入的数是正数还是负数,输入数0结束程序运行。分析问题:数从键盘输入,输入的数如果大于0则输出“输入的数是正数”,如果是小于0则输出“输入的数是负数”,如果是等于0,则程序运行结束。流程图如图4.5所示。0011开始定义变量大于0输出“是正数.”键盘输入输出“是负数.”x=0结束键盘输入图4.5 程序流程图 #include int main()int x=1;printf(n请输入一整数(输入0程序退出):);scanf(%d,&x);while(x)if(x 0) printf(输入的数%d是正数.n,x);else printf(输入的数%d是负数.n,x);printf(n请输入一整数(输入0程序退出):);scanf(%d,&x); return 0;例4.4:从键盘输入10个整数,把所有的正数相加以及所有的负数相加,最后输出所有正数的和,以及所有负数的和。分析问题:要从键盘输入十个整数,所以采用循环结构,输入的数分正数和负数,各进行累加。流程图如图4.6所示。01开始定义变量结束循环结束?输出和值输入数大于0正数累加正数计数负数累加负数计数图4.6 流程图#include int main()int nsum=0,n=0,psum=0,p=0;/*nsum负数累加值,n负数个数,psum正数累加值,p正数个数(0作为正数)*/int i,x; /* i 用于控制循环次数,x用户存储输入的数*/for(i=1;i=0)psum+=x;p+;elsensum+=x;n+;printf(n有%d个正数,和为:%dn有%d个负数,和为:%dn,p,psum,n,nsum); return 0;4.3 ifelse if 语句的应用if语句形式之三 if(表达式1) 语句块1 else if(表达式2) 语句块2 else if(表达式n-1) 语句块n-1 else 语句块n 功能:从上到下依次判断表达式的值,当出现某个值为真(非0)时,执行与其相对应的语句,并跳过其余条件的判别;如果所有的表达式均为假(0),则执行语句n。程序流程图如图4.7所示。图4.7 ifelse if流程图例4.5:从键盘输入一个数给x,然后判断该变量是否大于零,若大于零的话,则输出一行文字说明该变量是正数,否则的话再判断变量x的值是否为零,若为零的话,则输出一行文字说明该变量是零,否则的话则x的值是负数,输出一行文字说明该变量是负数。分析:输入的数分三种情况:正数、负数、零。流程图如图4.8所示。0011开始定义变量xx0输出“x是正数.”键盘输入x结束关键语句:scanf(%d,&x);if(x 0) printf(x是正数.n);else if(x=0) printf(x是零.n);else printf(x是负数.n);输出“x是零”输出“x是负数”x=0图4.8流程图编译程序及运行 #include int main() int x; printf(输入一数值:); scanf(%d,&x); if(x 0) printf(x是正数.n); else if(x = 0) printf(x是零.n); else printf(x是负数.n); return 0;4.4 if嵌套语句的应用 if语句的嵌套是指if语句中又包含了一个或多个if语句。上一节介绍的if-else if结构也是if语句的嵌套结构。例4.6:编写一个程序,由键盘输入三个整数作为三角形的三条边,判断是否能构成一个三角形,如能并判断是等边三角形、等腰三角形、直角三角形,还是其它一般的三角形。分析问题:设三个整数分别为:a、b、c,构成三角形的条件为:a+bc&a+cb&b+ca构成等边三角形的条件为:a=b&b=c;构成等腰三角形的条件为:a=b|b=c|a=c。构成直角三角形的条件为:a*a+c*c=b*b|a*a+b*b=c*c|c*c+b*b=a*a。编译程序及运行步骤1:在Visual C+环境下新建文件可用开始程序Microsoft Visual C+6.0 Microsoft Visual C+6.0 文件 新建文件 C+ Sourse File,输入文件名4-6.c步骤2:在4-6.c文件中输入以下完整的源程序。#include int main() int a,b,c; printf(请输入第1条边:); scanf(%d,&a); printf(请输入第2条边:); scanf(%d,&b); printf(请输入第3条边:); scanf(%d,&c); if( a+bc&a+cb&b+ca) printf(能构成一个三角形n); if (a=b&b=c) printf(能构成一个等边三角形n); else if(a=b|b=c|a=c) printf(能构成一个等腰三角形n); else if(a*a+c*c=b*b|a*a+b*b=c*c|c*c+b*b=a*a)printf(能构成一个直角三角形n); else printf(能构成一个一般的三角形n); else printf(不能构成一个三角形n); return 0;4.5 switch的应用switch语句格式:switch(表达式) case 常量表达式1: 语句序列 break; case 常量表达式2: 语句序列 break; case 常量表达式n; 语句序列n break; default: 语句序列n+1 图4.9 语句执行的流程图例4. 求执行下列程序段后k的值。char c=2;int k;switch(c+1-0) case 2:k+=1; case 2+1:k+=2; case 4:k+=3; 解析:switch中表达式的值为3,从case 2+1入口,执行语句k+=2;得k=3,由于此语句后无break;语句,继续执行case 4后语句:k+=3;最后k。例4. 输入一个字符,如果是Y、N或y、n,则分别执行一输出语句;如果是其他字母则执行另一输出语句。程序如下所示: #includevoid main()char ch;printf( please input Y/N(y/n) :);scanf(%c , &ch);switch (ch)case y: case Y: printf(n this is Y or y.n);break;case n: case N: printf(n this is N or n.n);break;default:printf(n this is other char.n);例4. 编写程序,实现如下功能:输入一个实数后,屏幕上显示如下菜单:1 输出相反数2 输出平方数3 输出平方根4 退出输入1,输出该数的相反数;输入2,输出该数的的平方数;输入3,输出该数的的平方根;输入4 退出此程序。输入14之外的数,显示“请输入14之间的数字”。分析:此题涉及多个菜单的选择,因此用到多分支结构switch,switch可以不同条件实现不同的程序块,如此题中输入数字1,则执行输出相反数的程序块。输入一个实数m选项14k= -mk= k= 退出永真选择4真假1234图4.10 菜单选择流程图#include #include int main() int i; float m; int c=5; printf(输入任意一个整型数:n ); scanf(%f,&m); printf(*n); printf(1.输出相反数n); printf(2.输出平方数n); printf(3.输出平方根n);printf(4.退出n); printf(*n); while(1) scanf(“
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年初级英语口语面试突破常见问题与答案
- 2025年人事经理揭秘招聘面试内幕销售岗位预测题
- 2025年城市管道天然气项目合作计划书
- 2025年地面瞄准设备、定位定向设备项目合作计划书
- 抢险救援现场安全员培训课件
- 2025年秋学期苏教版小学数学三年级上册教学计划
- 小学教师专业题库及答案
- 2025年智能一体化电源系统合作协议书
- 批注式阅读课件
- 扫大街的父亲课件
- 中华民族共同体概论课件专家版2第二讲 树立正确的中华民族历史观
- 仓库发错货的解决方案
- 金属冶炼安全事故案例与分析
- 动物诊疗机构报告登记表
- 南京市2023-2024高一上学期期末英语试卷及答案
- 输液泵、微量泵技术操作规程及评分标准
- 2023年产科手术分级及安全核查培训考试试题
- 数字孪生及车间实践第三篇数字孪生车间
- 时间像小马车课件
- 现代科学技术概论课件
- GB/T 43211-2023软木粒机械筛分测定粒度的试验方法
评论
0/150
提交评论