- 1、本文档共53页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]第五章 循环结构设计
注: 1. 循环体如果包含一个以上的语句,应该用花括号括起来,以复合语句形式出现。 2. 在循环体中应有使循环趋于结束的语句。 例:分析下列三个程序段 例:将从键盘上输入的字符输出,直到遇到回车键为止。 #include stdio.h main ( ) { char c; c=getchar( ); while ( c != ‘\n’ ) { putchar (c ); c=getchar ( ); } } 例:将输入的大写英文字母改写为小写英文字母(以回车键为结束符) #include stdio.h main ( ) { char c; while ( (c = getchar ( )) != ‘\n’ ) { if ( c = ‘A’ c = ‘Z’ ) c = c + 32 ; putchar (c ) ; } } 例:求s=1*2*3*…*10 main ( ) {int i=1 , s=1; while (i =10) { s=s*i ; i++; } printf ( “ s = %d \n ” , s ) ; } 又例:求n!(n从键盘输入) main ( ) {int i=1 , n ; long s = 1 ; printf ( “ n= ” ) ; scanf ( “ %d ” , n) ; while (i = n) { s=s*i ; i++; } printf ( “ s = %ld \n ” , s ) ; } 例:求n!(n从键盘输入) main ( ) {int i=1 , n ; long s = 1 ; printf ( “ n= ” ) ; scanf ( “ %d ” , n) ; do { s=s*i ; i++; } while (i = n); printf ( “ s = %ld \n ” , s ) ; } 例:统计输入的字符个数(以回车结束) # include stdio.h main ( ) { char ch ; int i = 0 ; do { ch = getchar ( ) ; i ++ ; } while ( ch != ‘\n’ ) ; printf ( “字符的个数是%d\n ” , i-1); } C语言中最灵活、 最复杂的循环语句; (1)可以用于循环次数确定的情况; (2)可以用于循环次数不确定的情况; (3)可实现while和do--while语句的所有 功能。 表达式3省略 ,则应在循环体中修改循环变量的值,以保证循环能正常结束。 表达式1、表达式3省略,只有表达式2,则等同于while语句 如: for ( ; i = 100 ; ) { sum = sum +i ; i ++ ; } 三个表达式都省略,循环体无终止进行下去。 如: for ( ; ; ) continue语句和break语句的区别: break 结束整个循环,不再进行条件判断,从循环体跳出。 语句只能用于循环语句和switch语句中。 Continue 只结束本次循环,跳过它下面的循环体语句不执行,转而开始新的一次循环条件判断;而不是终止整个循环的执行。 只能用于循环语句中 写循环结构时要考虑和解决许多问题。 包括: 循环涉及哪些变量,引进什么临时性变量? 这些变量在循环正式开始前应给什么初值?循环如何开始? 每次循环中变量的值应如何改变? 什么情况下继续循环(什么情况下终止)? 循环终止后如何得到所需结果? 课堂练习: 1、输入两个整数a和b,其中ab,显示其中大于a小于b的所有偶数。 2、计算23+24+…+210之和。 3、输出所有的“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身,如153=13+33+53。 1. main() {int a,b,t,i; printf(a=); scanf(%d,a); printf(b=); scanf(%d,b); if(ab) {t=a; a=b; b=t;} for(i=a+1;ib;i++) if(i%2==0)print
文档评论(0)