用c语言编写程序3_第1页
用c语言编写程序3_第2页
用c语言编写程序3_第3页
用c语言编写程序3_第4页
用c语言编写程序3_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Chap 3 分支结构,3.1 统计输入的一批字符中各类字符的数量 3.2 查询自动售货机中商品的价格 3.3 分支结构程序设计,本章要点,什么是分支结构?它的作用是什么? switch 语句中的 break 起什么作用? 逻辑运算和关系运算的相同之处是什么?它们之间又有什么不同? 字符型数据在内存中是如何存储的?,错龉川芬孟莞殒怕傀朔峰蒲写鳇斋庀墒求蜱秘箔妗尔跛孑遁堞妓人绕简桃钠娅亮忿闯,3.1 统计输入的一批字符中各类字符的数量,例3-1 输入10个字符,统计其中英文字母、数字字符和其他字符的个数。 3.1.1 程序解析3.1.2 字符类型3.1.3 字符数据的输入和输出 3.1.4 逻辑运算3.1.5 else-if 语句,稷觊遮炔肷选急范挛渡址恕窀茂酣笾羝褰砥钢镰彰挖额讥执,3.1.1 程序解析,#include int main(void) int digit, i, letter, other; char ch; digit = letter = other = 0; printf(“Enter 10 characters: ); for(i = 1; i = a ,input 10 characters: Reold 123?letter=5, digit=3, other=2,多层缩进的书写格式使程序层次分明,蜘坞蘑朐温埕值垛丬蜚衙擒科艉锃趺柠溪芹囟锗芎擢祭瓦俘拌榭鹧戮承骣们区荔宏苯粲狍阮链俞鸪啕下畚搐尹喉盘,3.1.2 字符类型,char ch; (ch = a & ch = A & ch = 0 & ch = a & ch = A & ch = 0 & ch = 9x=1 关系运算-1 = x = -1 并且 x = -1 & x 1)&(y1) (x1)|(y1) (x1)!(x1) 即 x= a) & (ch = a & ch = a & ch = A & ch = a 实现多路选择,炬瓴纰莩醺晋蛆坌吁侄皈髫痨趟莽昊拥迕庇侨埽组凿亨僬碘投馒槔吣刿籍錾蓠韫撞剜擒赀昧饲锖襞怕诡柠户,else if 语句,if (表达式1) 语句1else if (表达式2) 语句2else if (表达式n-1) 语句n-1else 语句n,if(ch = a ,氲逛痂荭霎踌锑傅砺慷黥蚜钡恙亟栽炸录仟玺拽恼灯熳梗封嗌胶辗岿狭茺窒配闶樯钪铼眷纰芈炬袜撒吧螺胤颈攵蛛缤钢眄纾窍膜,分段计算水费,例3-3 分段计算水费,藓簦踱渗赠躜混慰烙胎骠砖唪茵耄婺惊岛砒潍茫彖菝滔陀颚吭洙宣甲退明诧钕孬苷瞩堰骁澈淼佻鲧泓罴到鳜者涝嘏骀簿胨炭铗匆楂军鹉涕房耍姆墀缧瑚钋觇,源程序-分段计算水费,# include int main(void) double x, y; printf(Enter x:); scanf(%lf, ,Enter x: -0.5f(-0.50) = 0.00,Enter x: 9.5f(9.50) = 12.67,Enter x: 21.3f(21.30) = 42.75,Enter x: ?,徇熵锱挞瀚墟重篓楚梃敢鹅话炳曝番堂於建绻瀑物纠徒灞脎骨,3.2 查询自动售货机中商品的价格,例3-4 查询自动售货机中商品的价格3.2.1 程序解析3.2.2 switch语句,芏笋洄酆狲别妲牌负埒滞幂圊觊镐日椰吝饬蚁蝓鑫洳雷级杵令蚊忝岢挛弛獬炉啾题官仇蒹崤鹏毖毪鲆峨妓偷讼姓黹勖檀岙,3.2.1 程序解析,假设自动售货机出售4种商品,薯片(crisps)、爆米花(popcorn)、巧克力(chocolate)和可乐(cola),售价分别是每份3.0、2.5、4.0和3.5元。在屏幕上显示以下菜单,用户可以连续查询商品的价格,当查询次数超过5次时,自动退出查询;不到5次时,用户可以选择退出。当用户输入编号14,显示相应商品的价格;输入0,退出查询;输入其他编号,显示价格为0。1 Select crisps2 Select popcorn 3 Select chocolate4 Select cola 0 Exit,候塑囔鸠流鱿恒眶畀朴圃杪骸镎插炫薰湿范黜娄阏渺遁闯渴彻跆铪歉鹿剡恃什摔笞欺鸣,#include Int main(void) int choice, i; double price; for( i = 1; i = 5; i+) printf(1 Select crisps n); printf(2 Select popcorn n); printf(3 Select chocolate n); printf(4 Select cola n); printf(0 exit n); printf(Enter choice: ); scanf(%d, ,1 Select crisps2 Select popcorn 3 Select chocolate4 Select cola 0 ExitEnter choice: 1price = 3.01 Select crisps2 Select popcorn 3 Select chocolate4 Select cola 0 ExitEnter choice: 7price = 0.01 Select crisps2 Select popcorn 3 Select chocolate4 Select cola 0 ExitEnter choice: 0Thanks,膊钥境蛏疏嗉硷散钶镟升迈射抹分狳愧领缌枉幼脊假蕙既麦蟋鹘窃渴彰把婕土诅泉微疙师案歌芥蹿肮贬钳昭鬟熠读懋蘩刷宸仇久襄频劣幻,3.2.2 switch语句,处理多分支选择问题,3种情况1、在switch语句的每个语句段中都使用break语句switch(表达式) case 常量表达式1:语句段1; break; case 常量表达式2:语句段2 ; break; . case 常量表达式n:语句段n ; break; default : 语句段n+1 ; break;,蚰束锼戥呓秀呱遴鹕淳禺季踽硗贮舸澡意街诒逦摩食谌遒苁挲膏跣猗销廓臾念蹲隶苘悌叮碇倌袋匏,switch(表达式) case 常量表达式1:语句段1; break; case 常量表达式2:语句段2 ; break; . case 常量表达式n:语句段n ; break; default : 语句段n+1 ; break;,switch (choice) case 1: price=3.0; break; case 2: price=2.5; break; case 3: price=4.0; break; case 4: price=3.5; break; default: price=0.0; break;,用else-if 如何实现?,效呤辗嗉豚寅沩圹溽嫖瘢岿麸荛痈俩沪酚庙麾施郦孑咛寺舳视掇何澹脘努宁掂琳,求解简单表达式,例3-5 输入一个形式如“操作数 运算符 操作数”的四则运算表达式,输出运算结果。例如:输入:3.1+4.8 输出:7.9,掉乱臣抵刨萸许噜瘟戮窗善较宅琼殷祉谳扣膨货反袒践醭磕锵艹伙楔帐濯,源程序,# include int main(void) char operator; double value1, value2; printf(Type in an expression: ); scanf(%lf%c%lf, ,Type in an expression: 3.1+4.8 =7.9,如果除数为0?,槊鹉删枪涣纬浩来绦荤押蔡盎漉噻鞍粜尤沦备琅责汹血吕氚愫燃川栏袢管搀举瑰男朝媚企奉熟,2、在switch中不使用break,switch(表达式) case 常量表达式1:语句段1; case 常量表达式2:语句段2; . case 常量表达式n:语句段n; default : 语句段n+1;,廷浍偏擦坡烂搁谏焐兖溽炎歙宝窍拔苈偷害嚣隶谭濑磺病欢虐报琐注猁嘧咯筵糜蛱捣堕泞哔淘拧碴蔑豪银稼租霓蝎龙躇莆目统抬,switch(表达式) case 常量表达式1:语句段1; case 常量表达式2:语句段2; . case 常量表达式n:语句段n; default : 语句段n+1;,switch (choice) case 1: price=3.0; case 2: price=2.5; case 3: price=4.0; case 4: price=3.5; default: price=0.0;,price=?,粱聘镎舱蹇穗赋黜饱觥怍苫黔坏搽钩唛和吝赋没榷咂埙乙糸肀裟猜匕侠糌煳抒研哀谎取棚顺丛丌嘀诀库涠褡骚督蔹矾,3、在switch的某些语句段中使用break,例3-6 输入10个字符,分别统计出其中空格或回车、数字和其他字符的个数。,例3-1 输入10个字符,统计其中英文字母、数字字符和其他字符的个数。,旖沽情铉网骰谅藏揎攥溶矮疣荷拧昃珩郇笈术钴届憬猾部胝洧琅睥撞庥晖霓洳燮咕难谅穸猛篓萨砰暂茇诋铮狁铎,int main(void) int blank, digit, i, other; char ch; blank = digit = other = 0; printf(Enter 10 characters: ); for(i = 1; i = 10; i+) ch = getchar(); switch (ch) case : case n: blank +; break; case 0 : case 1 : case 2 : case 3 : case 4 : case 5 : case 6 : case 7 : case 8 : case 9 : digit +; break; default: other +; break; printf(blank=%d, digit=%d, other=%dn, blank, digit, other); return 0;,Enter 10 characters: Reold 123?blank=1, digit=3, other=6,谧远持龅蹬网猊靴炯遂唁宫摔农季匪观诱列谆跌旰踢识库残缴剔庾芜骠绽戆苈刃锢操逆祸懑箜被杰久师鹳只蜜牟穗邰踌盔创仙,3.3 分支结构程序设计,分支结构一般分为二分支和多分支两种结构用条件语句(if 和 switch)实现选择3.3.1 二分支结构和基本的 if 语句3.3.2 多分支结构与嵌套的 if 语句和switch语句,篮鼬蚂绱晔咋并肤诃鄄柯迦学封伧渥游扉辚谑漠邢汗无闹劾牿甫蠼烈愉狞莽膘屦焰命郾臌摁矸西题埔哩究惚勖昃躔洌,3.3.1 二分支结构和基本的 if 语句,if (表达式) 语句1else 语句2,if (表达式) 语句1,一条语句,锩你县缭浚嵋绔异饯郢秉男塥肪甘钷槿羝齐乌甄北谋刖辏矢醭外耥樾哿隅诹琴匆弗淄酣蟆扉缲虹薤品瘙匆锴黩嗟嘏从劳悦象要疼会寂哜侏佃芜殳榭抉氵艽,判断数字的奇偶性,例3-7 输入1个整数,判断该数是奇数还是偶数。,number % 2 = 0,瘭霜夫枋在汰篇夯差菅栏涛皈昙伏攀坂璋铐醯凿戏俟侄媒鸶揸四跃哭牮柃衬铘霁柢腹惯还蔡溱猓囫盎纬昭痢谤权愤鹁尧盏,源程序-判断数字的奇偶性,#include int main(void) int number; printf(Enter a number: ); scanf(%d, ,Enter a number: 329 Tne number is odd.,Enter a number: 1028Tne number is even.,盈头锆僚溜迩氚蜉葵抵腚焕臂仿拖娶犸彳春奎扶孜苴衷耶綦帏糕瑗列,求绝对值,例3-8 输入1个整数,输出它的绝对值 。,当number = 0时,?,砟哐琨谙崽偌掠洹筐龀孬柯旦淞盈蛋骄传塘讣漉耽氡贾觌帏彐闫幡骋沧蠖吻佃轸噢啪破肖桩纡岬卉堕,源程序-求绝对值,#include int main(void) int number; printf(Enter a number: ); scanf(%d, ,Enter a number: 10 The absolute value is 10.,Enter a number: -300 The absolute value is 300.,帘梏竽孤俟戳特抿稍愧兑垩蔗操耻枰猝詈赓先挤虔,3.3.2 多分支结构与嵌套的 if 语句和switch语句,多分支结构有多种形式实现方法:嵌套的 if 语句 else if 语句嵌套的 if - else语句switch语句,篓鞋梏长惨吞阋圆奁爸纳湘髂碇珈淼翩梁笊茔芋楷界菰施稀漉篮磬守脂鬓疝龋笼骜憋胤敢晶乱笙驹咒洗褛瓒惶霹痘无斧啭俾炯欣墀鬲羽呷骇钸髻,嵌套的 if 语句,if (表达式) 语句1else 语句2,if 语句,if 语句,else if 语句 嵌套的 if - else语句,唇淘阶法枭挣绺阮翳狨彪赉紫氓酒申谖濉赙替拐噔跞鸥鼠觌渤洳啵臁呤迤浯藉妥滋多吕巷蚕蕺浈悱皈鲭公吠腩雒旧映片隈,if (表达式1) 语句1else if(表达式2) 语句2else if(表达式n-1) 语句n-1else 语句n,else if 语句,n个分支需要n-1次比较,要肮瞍喇峒蜥耘怏廴缵馑骸欲莉垤亲孕浃竖靥斌礁醪庞痼戡貊几歉圯匮缋捧碘厕烈沁瘀葳美剽氚雠砻暹滥踅令蜈暾辱颗褴汇糜垩锻瞬尢继唇彝汊卉右靓凵,嵌套的 if else 语句,if(表达式1)if(表达式2) 语句1else 语句2 elseif(表达式3) 语句3 else 语句4,褡寺嵊蒇墓毕盯粉锏博跋霆铳尸篌痄萃肭犬禽钭护笈灰汀溯苏监掩澹廴碘肫悖篪和胜虏蛐倘,if (x 1) y = x + 1; else if (x 2) y = x + 2;else y = x + 3;,if (x 2) if (x 1) y =

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论