《c语言循环结构案例.ppt》由会员分享,可在线阅读,更多相关《c语言循环结构案例.ppt(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自动化技术专业C 循环结构案例分析循环结构案例分析 钱新杰钱新杰宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自动化技术专业C掌握基本算法的设计掌握for语句的基本应用掌握while语句的基本应用掌握do-while语句的基本应用 本次课学习目标宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自动化技术专业C1、简述、简述for语句执行过程。语句执行过程。2、比较分析、比较分析while语句和语句和do-while语句。语句。复 习expr2循环体假(0)真(非0)forexpr1expr3do循环体expr假(0)真(非0)
2、whileexpr循环体假(0)真(非0)循环体宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自动化技术专业C 例例1:从从键键盘盘输输入入各各学学生生成成绩绩,并并对对90分分以以上上(包包括括90分分)的的学学生生人人数数进进行行计计数数,直直到到输输入入的的成成绩绩为为负负为为止止,最最后后输输出出成成绩绩在在90分分以以上上的的学学生人数。生人数。宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自动化技术专业C#include stdio.hmain()int count;float grade;count0;scanf(%f,&grade);while(grade0.0
3、)if(grade90.0)countcount1;scanf(%f,&grade);printf(count%dn,count);思思考考:输输出出全全部部学学生生总总人人数和学生的平均成绩?数和学生的平均成绩?宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自动化技术专业C例例2:有一堆零件(:有一堆零件(100200个之间),如果以个之间),如果以4个零件为一组进行分组,则多个零件为一组进行分组,则多2个零件;如果个零件;如果以以7个零件为一组进行分组,则多个零件为一组进行分组,则多3个零件;个零件;如果以如果以9个零件为一组进行分组,则多个零件为一组进行分组,则多5个零个零件。编
4、程求解这堆零件总数。件。编程求解这堆零件总数。提示:用穷举法求解。即零件总数提示:用穷举法求解。即零件总数x从从100-200循循环试探,如果满足所有几个分组已知条件,环试探,如果满足所有几个分组已知条件,那么此时的那么此时的x就是一个解。分组后多几个零件就是一个解。分组后多几个零件这种条件可以用求余运算获得条件表达式。这种条件可以用求余运算获得条件表达式。宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自动化技术专业Cmain()int x,flag=0;for(x=100;x=200;x+)if(x%4=2&x%7=3&x%9=5)flag=1;break;if(flag)print
5、f(x=%dn,x);else printf(no answer!n);思考:思考:爱因斯坦的阶梯问题。爱因斯坦的阶梯问题。设有一阶梯,每步跨设有一阶梯,每步跨2阶,最阶,最后余后余1阶;每步跨阶;每步跨3阶,最后阶,最后余余2阶;每步跨阶;每步跨5阶,最后余阶,最后余4阶;每步跨阶;每步跨6阶,最后余阶,最后余5阶;阶;每步跨每步跨7阶时,正好到阶梯顶。阶时,正好到阶梯顶。问共有多少阶梯?问共有多少阶梯?宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自动化技术专业C 例例3:计算并输出计算并输出10以内以内(包括包括10)所有自然数的阶乘所有自然数的阶乘值。即计算值。即计算1!,2!
6、,3!,4!,5!,6!,7!,8!,9!,10!。思考:思考:N!算法?算法?宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自动化技术专业C#include stdio.hmain()int n,k;double s;for(n1;n10;nn1)s1.0;for(k1;kn;kk1)ss*k;printf(%2d!%16.7fn,n,s);宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自动化技术专业C例例4:从从键键盘盘输输入入一一行行字字符符,将将其其中中的的英英文文字字母母进进行行加加密密输输出出(非非英英文文字字母不用加密)。母不用加密)。#include stdio
7、.hmain()char c;int k;printf(input k:);scanf(%d,&k);scanf(%c,&c);/*吃掉上次输入的回车符吃掉上次输入的回车符*/cgetchar();while(c!n)if(ca&cz)|(cA&cZ)cck;if(cz|(cZ&cZk)cc26;printf(%c,c);cgetchar();宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自动化技术专业C例例5:输入输入A到到Z中的任一个字符,输出如中的任一个字符,输出如下回文串。如:输入下回文串。如:输入B,则输出,则输出ABA;输入;输入E,则输出,则输出ABCDEDCBA。分析:
8、该回文串可以分为两个部分分析:该回文串可以分为两个部分 如输入为如输入为E时,分为时,分为ABCDE和和DCBA两部分两部分 可以用两个循环语句,循环变量可以先可以用两个循环语句,循环变量可以先从从A循环到循环到E,再从,再从D循环到循环到A宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自动化技术专业Cmain()char c,ci;printf(“输入一个字母输入一个字母n”);c=getchar();for(ci=A,ci=A,ci-)printf(“%c”,ci);printf(“n”);宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自动化技术专业C例例6:对除对除5的倍
9、数以外的的倍数以外的1100的数求和。的数求和。main()int i,s;s=0;for(i=1;i=100;i+)if(!(i%5)continue;s+=i;宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自动化技术专业Cmain()int n,s;for(n=1,s=0;n=20;n=n+1)if(n%3=0)continue;printf(%dt,n);s=s+1;printf(ntotal:%dn,s);例例7:统计统计150150之间不能被之间不能被3 3整除的数的个数并输整除的数的个数并输出这些数。出这些数。运行结果:运行结果:1 2 4 5 7 8 10 11 13 14 16 17 19 20total:14宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自动化技术专业C 通过本次课的经典案例分析,主要要求同学们更深入的巩固和掌握for语句、while语句、do-while语句的基本应用,并掌握基本算法的设计,为后续内容做准备。小小 结结宜宾职业技术学院电气自动化技术专业宜宾职业技术学院电气自动化技术专业C 完成书上例题上机操作作作 业业
限制150内