c语言程序设计2下载,c语言程序设计(2).ppt

c语言程序设计(2).ppt

沈洋 南京航空航天大学,1,C语言程序设计,Lecture 2,沈洋 南京航空航天大学,2,第2章 决策,决策,决策对不同的情况做出不同的处理 再论数据类型 在程序中进行决策 循环入门 C中的表达式 第一个典型的例子质数,沈洋 南京航空航天大学,3,2.1 数据类型,在计算机中存放信息的地址单元 不同的数据类型占用的单位内存可能不同 整数和浮点数 避免在处理整数时使用浮点数运算效率、出现错误 整数和浮点数之间的转换 int n 3.7; 强制类型转换static_cast表达式 在C中是类型表达式,沈洋 南京航空航天大学,4,2.2 在程序中进行决策,基本规则计算机只能执行绝对清楚、毫无歧义的指令 反例如果a10,a等于b3或c2 目前的人工智能AI只是一个复杂的决策程序,可能由百万计的单独执行构成,沈洋 南京航空航天大学,5,2.3 if 和 else,if xy cout “x and y are equal.”; 一个等号表示赋值,两个等号表示比较 注意在这里写一个等号并不会报错,那么会怎样 if后的复合语句 能够使用语句的地方都可以使用复合语句 大括号后不用分号 问题如何加了分号会如何 if else 提示缩进的优点与问题,例子,沈洋 南京航空航天大学,6,条件表达式,由条件操作符连接而成的表达式 表达式的值为真(1)或假(0) 在if后的括号中一般是一个条件表达式,但这并不是语法要求 条件表达式的另一个经常被使用的位置循环 在C中,任何表达式都有值,非0即为真 问题ifxy cout x; else cout y; 将会怎么执行呢,沈洋 南京航空航天大学,7,多重if语句,if条件1 语句1; else if条件2 语句2; else if条件3 语句3; else if条件n-1 语句n-1; else 语句n ;,注每个else前有一个分号,整个语句结束处也有一个分号,沈洋 南京航空航天大学,8,例,if number500 cost0.15; else if number300 cost0.12; else if number100 cost0.10; else if number50 cost0.075; else cost0;,沈洋 南京航空航天大学,9,if语句的嵌套,在if 语句中可以包含一个或多个if 语句称为if语句的嵌套 格式,if if 语句1 else 语句2 else if 语句3 else 语句4,强烈要求注意else总是与它上面的最近的未配对的if配对 如果if与else的数目不一致,可用确定配对关系(为了程序清楚,有嵌套的地方都要求用 ),沈洋 南京航空航天大学,10,若else是与第一个if语句配对。也就是说,条件1不成立时执行语句2。可改为 if条件1 if条件2 语句1; else 语句2;,例如 if条件1 if条件2 语句1; else 语句2; else是与第二个if语句配对。也就是说,条件1成立且条件2不成立时才会执行语句2,沈洋 南京航空航天大学,11,练习,以下程序的输出结果是() int main int a,b,c; a2;b3;c1; if ab if ac cout a; else cout b; cout “end”; ,答案 end,沈洋 南京航空航天大学,12,2.4 例子,判断用户输入的一个数字是奇数还是偶数,include “stdafx.h“ include using namespace std; int main int n,remainder; coutn; remainder n 2; ifremainder 0 cout “你输入的是偶数“; else cout “你输入的是奇数“; return 0; ,沈洋 南京航空航天大学,13,值得注意的问题,if else和的使用 缩进 在函数开始的时候声明主要变量 如果将改为将会如何 如果用户输入“a”会如何 讨论可以在程序中加入相应处理吗 “先赋值,后访问”,沈洋 南京航空航天大学,14,另一个例子,输入3个数a,b,c,要求由小到大的顺序输出include using namespace std; int main int a,b,t; cina;cinb;cinc; if ab ta; ab; bt; if ac ta; ac; ct; if bc tb; bc; ct; couta;coutb;coutc; return 0; ,沈洋 南京航空航天大学,15,2.5 循环入门,循环是计算机最拿手的工作之一 循环语句的格式 while表达式 语句 语句可以是大括号括起的复合语句,沈洋 南京航空航天大学,16,小插曲无限循环,可以进行无限循环吗 容易,而且这是一种常见的错误 但无限循环并不都是错误 为避免无限循环,应设置合理的条件、语句以及初始值,使循环会在一定条件下终止 回忆变量应该先赋值,后访问 whiletrue 的使用 1*2n,第一次超过10000时n是几,沈洋 南京航空航天大学,17,2.6 打印1N,讨论 思路原材料和大致的加工方法 实例 步骤 C表示,沈洋 南京航空航天大学,18,include “stdafx.h“ include using namespace std; int main int i,n; coutn; i1; while in couti“ “; ii1; return 0; ,沈洋 南京航空航天大学,19,幕后玄机,关系操作符 , , , , 表示 cout i “ “;中“ “的作用 不要忘记一定要有语句使得循环变量向着终止循环的方向改变 练习逆序打印 bool 型数据更多地用在自定义函数的返回值,沈洋 南京航空航天大学,20,2.8 递增和递减操作符,和 有“副作用”的操作符 whilein couti“ “; 在一个复杂的表达式中如果多次用到i,那么递增(或递减)操作符将带来难以预料的结果 最好的做法是将i单列为一个语句,沈洋 南京航空航天大学,21,例,int a3; int ba; cout a “ “ b; int ca; cout a “ “ c; 输出结果 4 4 5 4 注意增量、减量的操作数不能是常量。如 3; error,沈洋 南京航空航天大学,22,2.10 布尔逻辑入门,用以表示and , or ,not 等逻辑关系含义,常常用以组成复杂的条件表达式 if grade 70 and grade 80 cout “中等”; C中的三个逻辑关系运算符 逻辑表达式 逻辑表达式是用逻辑运算符把表达式相连,沈洋 南京航空航天大学,23,运算符的优先级,关系运算符优先级比逻辑运算符和高 算术运算符的优先级比关系运算符高 的优先级最高,沈洋 南京航空航天大学,24,例,相当于53284-0 1 284- 1 1 8 3 1 0 1,53284-0,沈洋 南京航空航天大学,25,短路表达式,如果多个表达式由相连,有一个表达式为0,则整个连接的表达式的值就为0。 形式abc 如果多个表达式由相连,有一个表达式为1,则整个连接的表达式的值就为1。 形式abc 注若左边表达式已得出整个表达式的结果则后边的表达式不再执行。,沈洋 南京航空航天大学,26,例int n3,m6,k; kn4 运行结果 0 6 算得n4结果为0时,已经知道n4m10的结果为0,则后面的不再运算。,沈洋 南京航空航天大学,27,C中的表达式,由运算符将变量或常量连成的式子 已在课中接触过的表达式 赋值、四则运算、自增(减)、条件、逻辑 其他常见表达式 逗号、问号 P321Cc操作符 操作符的结合性 expr1expr2expr3从右到左意味着什么先计算expr3吗,沈洋 南京航空航天大学,28,2.13 质数测试,判断一个数是否为质数 一个适合计算机完成的任务 原理如果一个数只能由1及其本身整除,那么它就是质数 思路从2开始到n-1为止一个个试,如果能整除,则不是质数,如果最终也没遇到能整除的,那么就是 实例略 归纳步骤并以C表示,沈洋 南京航空航天大学,29,int main int i,n; bool flagtrue; coutn; i2; while in ifn i 0 flag false; ii1; ifflag cout n “是质数“; else cout n “不是质数“; return 0; ,沈洋 南京航空航天大学,30,优化,数学原理不用测试到n-1,到sqtrn就可以了 in 发现不是质数后应立即终止 break 练习使程序只计算一次平方根,而不是每次循环都计算一次,沈洋 南京航空航天大学,31,循环中的break和continue,break 语句 break用在循环语句和switch语句中。 在循环语句中,break用来从循环体内跳出。例 for r1 ; r100 break; 当area100时,结束循环 coutarea; 一个break只能跳出一个重循环语句。,沈洋 南京航空航天大学,32,循环中的break和continue,continue语句用在循环语句中,作用为结束本次循环,接着进行下次是否执行循环的判断。 例把100200之间的不能被3整除的数输出.,void main int n100; whilen200 if n30 continue;如果被3整除,则不输出 coutn; n; 有问题吗,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值