版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第2章结构化程序基本结构章结构化程序基本结构2.1用顺序结构设计程序用顺序结构设计程序2.2用分支结构设计程序用分支结构设计程序2.3用循环结构设计程序用循环结构设计程序2.4联合使用联合使用3种基本结构处理复杂问题种基本结构处理复杂问题P252.1用顺序结构设计程序用顺序结构设计程序P26返回返回2.1.1交换两个数据交换两个数据P262.1.1交换两个数据交换两个数据P26#include main() int x,y,t; printf(Input x and y:); scanf(%d%d,&x,&y); printf(before:x=%d,y=%dn,x,y);
2、t=x; x=y; y=t; printf(after:x=%d,y=%dn,x,y);程序设计一般包括问题分析、程序设计一般包括问题分析、确定确定算法算法、确定数据结构。、确定数据结构。算法是用计算机解决某个特定问题的算法是用计算机解决某个特定问题的步骤,其特性:步骤,其特性:有穷性有穷性确定性确定性有效性有效性有有0个或多个输入数据个或多个输入数据有有1个或多个输出数据个或多个输出数据算法是算法是最关键最关键语句语句A语句语句BP272.1.2设计菜单设计菜单P272.1.2设计菜单设计菜单P27|*| |-User management -| 1-Add new user | 2-Cha
3、nge user password | 3-Show user information | 4-exit |*|#include main() 定义整型变量定义整型变量a显示菜单显示菜单输入选项输入选项显示选项显示选项int a; printf(|*|n);printf(|-User management-|n);printf(| 1-Add new user |n);printf(| 2-Change user password|n);printf(| 3-Show user information|n);printf(| 4-Exit |n);printf(|*|n); scanf(%d,
4、&a);printf(Select %dn,a);| |-Shopping management-| b-banana | a-apple | w-watermelon | e-exit |_|P292.2用分支结构设计程序用分支结构设计程序P29返回返回2.2.1处理两个分支问题处理两个分支问题P292.2.1处理两个分支问题处理两个分支问题P292523xxxy#include main()定义整型变量定义整型变量x、a和和b定义双精度实型变量定义双精度实型变量y输入输入x的值的值 if(x的值为的值为2) 显示错误信息显示错误信息 else 计算分子计算分子 计算分母计算分母 计
5、算计算y的值的值 输出输出x和和y的值的值int x,a,b; double y;scanf(%d,&x);if(x=2)printf(Error!n);a=x*x*x+2*x-5;b=x-2;y=(double)a/b;printf(x=%d,y=%lfn,x,y);关系运算符关系运算符 、=、=、=、!= 强制类型转换强制类型转换 int all;#include main()定义整型变量定义整型变量x、a和和b定义双精度实型变量定义双精度实型变量y输入输入x的值的值 if(x的值为的值为2) 显示错误信息显示错误信息 else 计算分子计算分子 计算分母计算分母 计算计算y的值的
6、值 输出输出x和和y的值的值int x,a,b; double y;scanf(%d,&x);if(x=2)printf(Error!n);a=x*x*x+2*x-5;b=x-2;y=(double)a/b;printf(x=%d,y=%lfn,x,y);缩进格式缩进格式 x=2?是是否否a=x3+2x-5定义定义x,a,b,y输入输入x显示显示Error!b=x-2y=a/b输出输出x,yP31#include main()定义整型变量定义整型变量a和和b定义字符型变量定义字符型变量ch定义双精度实型变量定义双精度实型变量total输入输入a和和b的值的值输入输入ch的值的值 if(
7、ch的值为的值为“y”或或“Y”) 平时成绩加平时成绩加10分分 期末成绩加期末成绩加15分分 计算总评成绩计算总评成绩 输出平时成绩、期末成绩和总评成绩输出平时成绩、期末成绩和总评成绩 int a,b; char ch;double total; scanf(%d%d,&a,&b);scanf( %c,&ch);if(ch=y | ch=Y)a=a+10;b=b+15;total=a*0.4+b*0.6;printf(%d,%d,%.2lfn,a,b,total);逻辑运算符逻辑运算符 & | !ch=y或或Y?是是否否a增增10定义定义a,b,ch,tota
8、l输入输入a,b,chb增增15total=a*0.4+b*0.6输出输出a,b,total假假真真表达式表达式语句语句i1语句语句i2语句语句in语句语句e1语句语句e2语句语句en假假真真表达式表达式语句语句i1语句语句i2语句语句inP34P342.2.2处理一个分支又处理一个分支又包含另一分支问题包含另一分支问题P342.2.2处理一个分支又处理一个分支又包含另一分支问题包含另一分支问题P34#include main()定义整型变量定义整型变量a和和b定义字符型变量定义字符型变量ch定义双精度实型变量定义双精度实型变量total输入输入a和和b的值的值输入输入ch的值的值 if(ch
9、的值为的值为“y”或或“Y”) if(平时成绩平时成绩90) 将平时成绩按将平时成绩按100处理处理 else 平时成绩加平时成绩加10分分if(期末成绩期末成绩85) 将期末成绩按将期末成绩按100处理处理 else 期末成绩加期末成绩加15分分 计算总评成绩计算总评成绩 输出平时成绩、期末成绩和总评成绩输出平时成绩、期末成绩和总评成绩#include main()定义整型变量定义整型变量a和和b定义字符型变量定义字符型变量ch定义双精度实型变量定义双精度实型变量total输入输入a和和b的值的值输入输入ch的值的值int a,b;char ch;double total;scanf(%d%
10、d,&a,&b);scanf( %c,&ch); if(ch的值为的值为“y”或或“Y”) if(平时成绩平时成绩90) 将平时成绩按将平时成绩按100处理处理 else 平时成绩加平时成绩加10分分if(期末成绩期末成绩85) 将期末成绩按将期末成绩按100处理处理 else 期末成绩加期末成绩加15分分 计算总评成绩计算总评成绩 输出平时成绩、期末成绩和总评成绩输出平时成绩、期末成绩和总评成绩if(ch=y | ch=Y)a90a=100;a=a+10;b85b=100;b=b+15;total=a*0.4+b*0.6;printf(%d,%d,%.2lfn,a,b
11、,total);嵌套的嵌套的if语句语句ch=y或或Y?是是否否a=100a90?是是a增增10否否b=100b85?是是b增增15否否x2-5 (1x20)y=1 (x1)20 (x20)P36#include main()定义双精度实型变量定义双精度实型变量x和和y输入输入x的值的值if(x1) y得到得到1 else if(x20) y得到得到x2-5的值的值 else y得到得到20 输出输出x和和y的值的值 double x,y;scanf(%lf,&x);y=1;y=x*x-5;y=20;printf(x=%lf,y=%lfn,x,y);#include main()if(
12、x1) else if(x20) else double x,y;scanf(%lf,&x);y=1;y=x*x-5;y=20;printf(x=%lf,y=%lfn,x,y);else if(x20) y=x*x-5;else y=20;x11假假真真真真假假显示显示x x和和y y的值的值x2020y=x2-5y=20y=1P38P382.2.3处理多个分支问题处理多个分支问题P392.2.3处理多个分支问题处理多个分支问题P39#include main() 定义整型变量定义整型变量a 显示用户管理菜单显示用户管理菜单 等待输入选项等待输入选项 switch(选项选项) 选项选项
13、1:1-Add new user 选项选项2:2-Change user password 选项选项3:3-Show user information 选项选项4:4-Exit 否则:否则: Error! #include main() 定义整型变量定义整型变量a 显示用户管理菜单显示用户管理菜单 等待输入选项等待输入选项printf(|printf(|* * * * * * * * * * * * * * * * * * * * * * * * * *|n);|n);printf(|-User management-|n);printf(|-User management-|n);print
14、fprintf(| 1-Add new user |n);(| 1-Add new user |n);printfprintf(| 2-Change user password |n);(| 2-Change user password |n);printfprintf(| 3-Show user information |n);(| 3-Show user information |n);printfprintf(| 4-Exit |n);(| 4-Exit |n);printfprintf(|(|* * * * * * * * * * * * * * * * * * * * * * * *
15、 * *|n);|n);intint a; a;scanf(%d,&ascanf(%d,&a);); switch(选项选项) 选项选项1:1-Add new user 选项选项2:2-Change user password 选项选项3:3-Show user information 选项选项4:4-Exit 否则:否则: Error! switch(aswitch(a) ) case 1:printf(1-Add new usern);case 1:printf(1-Add new usern);case 2:printf(2-Change user passwordn);
16、case 2:printf(2-Change user passwordn); break; break; break; break;case 3:printf(3-Show user case 3:printf(3-Show user informationn); break; informationn); break;case 4:printf(4-Exitn); break;case 4:printf(4-Exitn); break;default: printf(Error!ndefault: printf(Error!n); break;); break;P40表达式表达式1表达式表
17、达式语句组语句组1表达式表达式2语句组语句组2表达式表达式n语句组语句组n其他其他语句组语句组n+12.3用循环结构设计程序用循环结构设计程序P41返回返回2.3.1用用for语句处理循环问题语句处理循环问题P412.3.1用用for语句处理循环问题语句处理循环问题P41#include main()定义循环变量定义循环变量ifor(i=1; i=5; i+)显示显示-i- 显示显示* int i;printf(-%d-n,i); printf(*n);i 5?i增增1是是i=1显示显示*显示显示-i-1-*i=2-2-*i 5?i增增1是是i=1显示显示*显示显示-i-1-*i=3-2-*-
18、3-*i 5?i增增1是是i=1显示显示*显示显示-i-1-*i=4-2-*-3-*-4-*i 5?i增增1是是i=1显示显示*显示显示-i-1-*i=5-2-*-3-*-4-*-5-*i 5?i增增1是是i=1否否显示显示*显示显示-i-1-*i=6-2-*-3-*-4-*-5-*P44#include main()定义循环变量定义循环变量i和存放和值的和存放和值的sum给给sum赋赋0for(i=1; i=100; i+)给给sum累加累加i 显示显示sum的值的值 int i,sum;sum=0;sum=sum+i;printf(sum=%dn,sum);sum=sum+1;sum=su
19、m+2;sum=sum+3;sum=sum+99;sum=sum+100;i 100?i增增1是是sum=sum+ii=1否否P45#include main() 定义循环变量定义循环变量i和和sum2、sum3、sum5 分别给分别给sum2、sum3、sum5赋赋0 for(i=1; i=100; i+) if(i为为2的倍数的倍数) 给给sum2累加累加i if(i为为3的倍数的倍数) 给给sum3累加累加i if(i为为5的倍数的倍数) 给给sum5累加累加i 显示显示sum2、sum3、sum5的值的值int i,sum2,sum3,sum5;sum2=sum3=sum5=0;if(
20、i%2=0)sum2=sum2+i;if(i%3=0)sum3=sum3+i;if(i%5=0)sum5=sum5+i;printf(%d,%d,%dn, sum2,sum3,sum5);表达式表达式2表达式表达式3真真语句语句1表达式表达式1假假语句语句2语句语句n P472.3.2用用while语句处理循环问题语句处理循环问题P472.3.2用用while语句处理循环问题语句处理循环问题P47#include main() 定义整型变量定义整型变量n,并赋初值,并赋初值0 定义双精度变量定义双精度变量w、sum、ave,给,给sum赋赋0 输入工资输入工资 while(工资大于等于工资大于
21、等于0) 将工资累加到将工资累加到sum中中 累加职工人数,即累加职工人数,即n增增1 输入工资输入工资 计算平均工资计算平均工资 输出平均工资输出平均工资int n=0;double w,sum=0,ave;scanf(%lf,&w);w=0sum=sum+w;n+;scanf(%lf,&w);ave=sum/n;printf(ave=%.2lfn,ave);w 0?是是sum=sum+wn增增1输入工资输入工资1632.5 892.5 1698.3 1523.7 2035.7 -1 sum=0+1632.5n=0+1w 0?是是sum=sum+wn增增1输入工资输入工资16
22、32.5 892.5 1698.3 1523.7 2035.7 -1 sum=0+1632.5n=0+1sum=1632.5+892.5n=1+1w 0?是是sum=sum+wn增增1输入工资输入工资1632.5 892.5 1698.3 1523.7 2035.7 -1 sum=0+1632.5n=0+1sum=1632.5+892.5n=1+1sum=2525.0+1698.3n=2+1w 0?是是sum=sum+wn增增1输入工资输入工资1632.5 892.5 1698.3 1523.7 2035.7 -1 sum=0+1632.5n=0+1sum=1632.5+892.5n=1+1s
23、um=2525.0+1698.3n=2+1sum=4223.3+1523.7n=3+1w 0?是是sum=sum+wn增增1输入工资输入工资1632.5 892.5 1698.3 1523.7 2035.7 -1 sum=0+1632.5n=0+1sum=1632.5+892.5n=1+1sum=2525.0+1698.3n=2+1sum=4223.3+1523.7n=3+1sum=5747.0+2035.7n=4+1w 0?是是sum=sum+wn增增1输入工资输入工资1632.5 892.5 1698.3 1523.7 2035.7 -1 sum=0+1632.5n=0+1sum=1632
24、.5+892.5n=1+1sum=2525.0+1698.3n=2+1sum=4223.3+1523.7n=3+1sum=5747.0+2035.7n=4+1否否7782.754131211P49#include main() 定义长整型变量定义长整型变量i,并赋初值,并赋初值1 定义双精度型变量定义双精度型变量t和和sum,并分别赋初值,并分别赋初值1和和0 while(t大于等于大于等于10-6) 给给sum累加累加t i增增1 计算新的一项后赋给计算新的一项后赋给t 输出计算结果输出计算结果int i=1;double t=1,sum=0;t=1e-6sum=sum+t;i+;t=(do
25、uble)1/i;printf(sum=%lfn,sum);表达式表达式真真语句语句1假假语句语句2语句语句n P502.3.3用用do-while语句处理循环问题语句处理循环问题P512.3.3用用do-while语句处理循环问题语句处理循环问题P51#include #include #include main() 定义整型变量定义整型变量a do 清屏清屏 显示用户管理菜单显示用户管理菜单int a;printf(|*|n);printf(| 1-Add |n);printf(| 2-Change |n);printf(| 3-Show |n);printf(| 4-Exit |n);p
26、rintf(|*|n);system(cls); 从菜单选择一项从菜单选择一项 switch(选项选项) 选项选项1:显示:显示1 选项选项2:显示:显示2 选项选项3:显示:显示3 选项选项4:显示:显示4 否则:否则: 显示显示Error! while(没选择没选择4)scanf(%d,&a);acase 1: printf(1n); break;case 2: printf(“2n); break;case 3: printf(“3n); break;case 4: printf(“4n); break;default: printf(Error!n);a!=4getch();起
27、暂停作用起暂停作用 表达式表达式真真语句语句1假假语句语句2语句语句n P532.3.4用用break语句控制循环结束语句控制循环结束P532.3.4用用break语句控制循环结束语句控制循环结束P53#include main() 定义整型变量定义整型变量i、a、sum,sum赋赋0 for(i=1; i=6; i+) 输入评委的分数输入评委的分数 if(a=0)退出循环退出循环 将分数累加到将分数累加到sum中中 if(i=6) 显示被淘汰的信息显示被淘汰的信息 else 显示获得的总分显示获得的总分int i,a,sum=0;scanf(%d,&a);break;sum=sum+
28、a;printf(Failed!n);printf(total:%dn,sum);i 6?i+真真i=1假假sum=sum+a输入输入aa=0?真真假假P552.4联合使用联合使用3种基本结种基本结构处理复杂问题构处理复杂问题 P55返回返回2.4联合使用联合使用3种基本结种基本结构处理复杂问题构处理复杂问题 P55#include main() 定义整型变量定义整型变量year、month、day do 输入年份和月份输入年份和月份 switch(月份月份) 对对1、3、5、7、8、10、12:给:给day赋赋31 对对4、6、9、11:给:给day赋赋30 对对2:if(闰年闰年) 给给d
29、ay赋赋29 else 给给day赋赋28 对其他输入:给对其他输入:给day赋赋100 if(day!=100) 输出年份、月份、天数输出年份、月份、天数 else 显示错误信息显示错误信息 while(day!=100);#include main() int year,month,day; do printf(Input year and month:);scanf(%d%d,&year,&month); switch(month) case 1: case 3: case 5: case 7: case 8: case 10: case 12: day=31; break; case 4: case 6: case 9: case 11: da
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 外研八下英语Unit 3 Presenting ideas-Reflection《单元知识梳理》课件
- 人教 八年级 语文 下册 第2单元《8.时间的脚印 第2课时》课件
- 2026年水泥材料销售合同(1篇)
- 2025 高中信息技术数据结构在生物信息学中的运用课件
- 2026年委托购房合同规范合同(1篇)
- 心理环境对幼儿发展的意义
- 2026届浙江宁波十校高三下学期二模化学试题+答案
- 四川省宜宾市普通高中2023级第二次诊断性测试数学+答案
- 2026年及未来5年市场数据中国镍矿产业园区行业发展潜力预测及投资战略、数据研究报告
- 春季工厂防火安全培训
- 造价公司档案管理制度
- 等腰三角形复习课教案
- 初三化学知识梳理:酸碱盐
- 麻醉科气道管理护理
- 《2025年工贸企业重大事故隐患判定标准解读》知识培训
- 岗位晋升申请书理由
- 个人简历模板完整版(带封面和自荐信)
- T-CNCIA 02020-2024 含异氰脲酸三缩水甘油酯(TGIC)的粉末涂料密闭生产工艺要求
- 部编小学二年级语文下册第五单元寓言两则(教学设计教案及反思)
- 董氏针灸奇穴全集
- GB/T 25052-2024连续热浸镀层钢板和钢带尺寸、外形、重量及允许偏差
评论
0/150
提交评论