C语言函数循环

上传人:zw****58 文档编号:51582554 上传时间:2018-08-15 格式:PPT 页数:32 大小:252KB
返回 下载 相关 举报
C语言函数循环_第1页
第1页 / 共32页
C语言函数循环_第2页
第2页 / 共32页
C语言函数循环_第3页
第3页 / 共32页
C语言函数循环_第4页
第4页 / 共32页
C语言函数循环_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《C语言函数循环》由会员分享,可在线阅读,更多相关《C语言函数循环(32页珍藏版)》请在金锄头文库上搜索。

1、讲授:汪瑾C程序流程设计程序的三种基本结构选择型程序设计 循环型程序设计 辅助控制语句讲授:汪瑾n结构化程序设计n基本思想:任何程序都可以用三种基本结构表示,限制使用无条件转移语句(goto)n结构化程序:由三种基本结构反复嵌套构成的程序n优点:结构清晰,易读,提高程序设计质量和效率n三种基本结构n顺序结构ABA B流程图N-S图程序的三种基本结构讲授:汪瑾PAB真假PBA真假kA1A2AiAnk=k2k=k1k=kn k=kil 选择结构p二分支p多分支讲授:汪瑾l当型循环结构l直到型循环结构PA假真当P为真AAP真假A直到P为真循环结构讲授:汪瑾n概述 C语言可实现循环的语句: 用goto

2、 和 if 构成循环 while 语句 do while 语句 for 语句ngoto语句及用goto构成循环ngoto语句一般格式:goto 语句标号;. 标号:语句; 循环型程序设计讲授:汪瑾v功能:无条件转移语句v说明:l 不能用整数作标号l 只能出现在goto所在函数内,且唯一l 只能加在可执行语句前面l 限制使用goto语句循环型程序设计讲授:汪瑾#include main() int i,sum=0;i=1;loop: if (imain() int i,sum=0;i=1;while(imain( ) int i=0;for(i=0;imain( ) int i=0;for(;i

3、main( ) int i=0;for(;imain( ) int i=0;for(;i 0 ) x1 = (x2+1) * 2 ;/*第一天的桃子数是第2天桃子数加1后的2倍*/x2 = x1;day - ;printf ( “the total is %dn“, x1 ) ; 讲授:汪瑾古典问题:斐波那契数列有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1, 1, 2, 3, 5, 8, 13, 21讲授:汪瑾main ( ) long fn1, fn2, fn3 ; int i, n ;printf (

4、 “输入月数(少于40): “ );scanf ( “%d“, if ( n1 )printf ( “M.2:%10ld“ , fn2 ) ;for ( i=3; i=n; i+ ) fn3= fn1 + fn2 ;if ( i%4=0 ) printf (“n“) ;printf(“M.%2d:%10ld“,i,fn3);fn1=fn2; fn2=fn3; 讲授:汪瑾求s=a+aa+aaa+aaaa+aa.a的值,其 中a是一个数字。例如 2+22+222+2222+22222(此时共有5个数 相加),几个数相加有键盘控制。main ( ) int a, n, count = 1 ; lon

5、g int sn = 0, tn = 0 ;printf (“please input a and nn“ ) ;scanf ( “%d, %d“, printf ( “a=%d, n=%dn“, a, n );while ( count=n )tn = tn+a ; sn = sn+tn;a = a*10 ; +count ;printf ( “a+aa+.=%ldn“ , sn ) ; 求和累加:讲授:汪瑾有5个人坐在一起,问第五个人多少岁 ?他说比第4个人大2岁。问第4个人岁 数,他说比第3个人大2岁。问第三个 人,又说比第2人大两岁。问第2个人 ,说比第一个人大两岁。最后问第一 个人,

6、他说是10岁。请问第五个人多 大?age ( int n ) int c ;if ( n=1) c=10;else c=age(n-1)+2;return(c);main() printf ( “%d“, age(5) );递归问题:讲授:汪瑾如果整数A的全部因子(包括1,不包括A本身)之和等 于B;且整数B的全部因子(包括1,不包括B本身)之和 等于A,则将整数A和B称为亲密数。求3000以内的全 部亲密数。 亲密数穷举问题讲授:汪瑾main() int a, i, b, n; for (a=1; a3000; a+) /*穷举3000以内的全部整数*/ for ( b=0, i=1; i=

7、a/2; i+ ) if ( !(a%i) ) b += i ; for ( n=0, i=1; i=b/2; i+ ) if ( ! ( b%i ) ) n += i ; if ( n=a 讲授:汪瑾两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z 三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和 x比,c说他不和x,z比,请编程序找出三队赛手的名单。 main() char i , j , k ; /*i是a的对手,j是b的对手,k是c的对手*/for ( i=x ; i=z ; i+ )for ( j=x ; j=z ; j+ ) if ( i !=

8、j )for ( k=x; k=z; k+ ) if ( i!=k 讲授:汪瑾输入一个长度不超过 100 的字符串, 删除串中的重复字符。 int alread_saved (char lastchar, char newstr, int j ) int i = 0 ; while ( i j ) if ( lastchar = newstri ) return 1; i+ ; return 0 ; 调试例题:讲授:汪瑾void main() char str100; char newstr100; int n, i, j; i=0; j=0; gets ( str ) ; while ( stri != 0 ) if ( !alread_saved ( stri,newstr,j ) ) newstrj = stri ; j+ ; i+; newstr j = 0 ; puts ( newstr ) ;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 教育学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号