循环程序实例_第1页
循环程序实例_第2页
循环程序实例_第3页
循环程序实例_第4页
循环程序实例_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、C语言程序设计语言程序设计 C语言程序设计语言程序设计例 求1! + 2! + . + 100!for (i = 1; i = 100; i+) item = i ! sum = sum + item;程序解析程序解析调调用函数数 fact(i) 计计算 i 的阶阶乘嵌套循环嵌套循环用循环计环计算 i 的阶阶乘C语言程序设计语言程序设计#include #include double fact (int n); double fact (int n); main()main() int i; int i; double sum; double sum; sum = 0; sum = 0; fo

2、r(i = 1; i = 100; i+ ) for(i = 1; i = 100; i+ ) sum = sum + fact (i); sum = sum + fact (i); printf(1! + 2! + 3! + printf(1! + 2! + 3! + + 100! = %en + 100! = %en, sum);, sum); double fact (int n)double fact (int n) int i; int i; double result = 1; double result = 1; for (i = 1; i = n; i+) for (i = 1

3、; i = n; i+) result = result result = result * * i ; i ; return result ; return result ; 例 程序解析 求1! + 2! + . + 100!C语言程序设计语言程序设计例 源程序#include #include main()main() int i, j;int i, j;double item, sum; /double item, sum; /* * item item 存放阶乘存放阶乘 * */ /sum = 0;sum = 0; for(i = 1; i = 100; i+) for(i = 1;

4、 i = 100; i+) item = 1; / item = 1; /* * 每次求阶乘都从每次求阶乘都从1 1开始开始 * */ / for (j = 1; j = i; j+) / for (j = 1; j = i; j+) /* * 内层循环算出内层循环算出 item = i! item = i! * */ / item = item item = item * * j; j; sum = sum + item; sum = sum + item; printf(1! + 2! + 3! + printf(1! + 2! + 3! + + 100! = %en, sum); + 1

5、00! = %en, sum); C语言程序设计语言程序设计内层循环的初始化for(i = 1; i = 100; i+) for(i = 1; i = 100; i+) item = 1;item = 1; for (j = 1; j = i; j+) for (j = 1; j = i; j+) item = item item = item * * j; j; sum = sum + item; sum = sum + item; 求求1! + 2! + . + 100!item = 1;for(i = 1; i = 100; i+) for (j = 1; j = i; j+) ite

6、m = item * j; sum = sum + item; 求求1! + 1!*2! + + 1!*2!*100! C语言程序设计语言程序设计分析嵌套循环的执行过程for(i = 1; i = 100; i+) for(i = 1; i = 100; i+) item = 1; item = 1; for (j = 1; j = i; j for (j = 1; j = i; j+)+) item = item item = item * * j; j; sum = sum + item; sum = sum + item; n 外层循环变量外层循环变量 i 的每个值的每个值内层循环变量内

7、层循环变量 j 变化一个轮次;变化一个轮次;n 内外层循环变量不能相同内外层循环变量不能相同分别用分别用 i 和和 jC语言程序设计语言程序设计i = 1j = 1输出 1 1 (第1次输出)j = 1输出 2 1 (第2次输出)i = 2j = 2输出 2 2 (第3次输出)j = 1输出 100 1 (第4951次输出)j = 2输出 100 2 (第4952次输出)i = 100j = 100输出 100 100 (第5050次输出)for (i = 1; i = 100; i+) for (j = 1; j = i; j+) printf (%d %dn, i, j );C语言程序设计

8、语言程序设计小结 循环程序设计=循环程序的实现要点: 归纳出哪些操作需要反复执行? 循环体 这些操作在什么情况下重复执行? 循环条件=选用合适的循环语句for while do-while=循环具体实现时考虑(循环条件): 事先给定循环次数,首选for 通过其他条件控制循环,考虑while或do-whileC语言程序设计语言程序设计#include #include main()main() int i, mark, max, n; int i, mark, max, n; printf(Enter n: ); scanf (%d, &n); printf(Enter n: ); sc

9、anf (%d, &n); printf(Enter %d marks: , n); printf(Enter %d marks: , n); scanf (%d, &mark); / scanf (%d, &mark); /* * 读入第一个成绩读入第一个成绩 * */ / max = mark; / max = mark; /* * 假设第一个成绩是最高分假设第一个成绩是最高分 * */ / for (i = 1; i n; i+ ) for (i = 1; i n; i+ ) scanf (%d, &mark); scanf (%d, &mark)

10、; if (max mark) if (max mark) max = mark; max = mark; printf(Max = %dn, max); printf(Max = %dn, max); 例1 输入一批学生的成绩,求最高分(for)mark maxmaxmarkEnter n: 5Enter 5 maks:67 88 73 54 82Max = 88Enter n: 0C语言程序设计语言程序设计#include #include main()main() int mark, max; int mark, max; printf(“Enter marks:); printf(“E

11、nter marks:); scanf (%d, &mark); / scanf (%d, &mark); /* * 读入第一个成绩读入第一个成绩 * */ / max = mark; / max = mark; /* * 假设第一个成绩最高假设第一个成绩最高分分 * */ / while (mark = 0) while (mark = 0) if(max mark) if(max mark) max = mark ; max = mark ; scanf (%d, &mark ); scanf (%d, &mark ); ; ; printf(Max = %

12、dn, max); printf(Max = %dn, max); 例1 输入一批学生的成绩,求最高分(while)Enter marks:67 88 73 54 82 -1Max = 88Enter marks:-1C语言程序设计语言程序设计#include #include main()main() int mark, max; int mark, max; max = -1; / max = -1; /* * 给给maxmax赋一个小初值赋一个小初值 * */ / printf(“Enter marks: ); printf(“Enter marks: ); do do scanf (%

13、d, &mark ); scanf (%d, &mark ); if (max mark) if (max = 0); while(mark = 0); printf(Max = %dn, max); printf(Max = %dn, max); 例1 输入一批学生的成绩,求最高分(do-while)Enter marks: 67 88 73 54 82 -1Max = 88Enter marks: -1C语言程序设计语言程序设计例2 将一个正整数逆序输出确定:循环条件和循环体(循环不变式) 12345 5 4 3 2 112345 % 10 = 5 12345 / 10 =

14、 1234 1234 % 10 = 4 1234 / 10 = 123 123 % 10 = 3 123 / 10 = 12 12 % 10 = 2 12 / 10 = 1 1 % 10 = 1 1 / 10 = 0 结束结束循环不变式循环不变式 x%10 x=x/10循环结束条件循环结束条件 x=0scanf( “%d”, &x);while (x != 0) digit = x %10; x = x/10 ; printf( %d , digit);用用do-while实现?实现?C语言程序设计语言程序设计例3 求500以内的全部素数,每行输出10个for (m = 2; m =

15、500; m+)for (m = 2; m = 500; m+) if if (m(m是素数是素数) ) printf( %d, m); printf( %d, m);n = sqrt(m);n = sqrt(m);for(i = 2; i = n; i+)for(i = 2; i n) printf(yesn)if(i n) printf(yesn)else printf(non”);else printf(non”);for (m = 2; m = 500; m+)for (m = 2; m = 500; m+) n=sqrt(m); n=sqrt(m); for(i = 2; i = n

16、; i+) for(i = 2; i n) printf(%d, m) if(i n) printf(%d, m) C语言程序设计语言程序设计例3 源程序#include #include #include #include main()main() int count, i, m, n; int count, i, m, n; count = 0; count = 0; for (m = 2; m = 500; m+) for (m = 2; m = 500; m+) n = sqrt(m); n = sqrt(m); for (i = 2; i = n; i+)for (i = 2; i

17、n) if(i n) / /* * 如果如果m m是素数是素数 * */ / printf(%6d, m); printf(%6d, m); count+; count+; if (count %10 = 0) printf(“n”); if (count %10 = 0) printf(“n”); C语言程序设计语言程序设计例4 求Fibonacci序列:1,1,2,3,5,8,13, 1, 1, 2, 3, 5, 8, 11, 1, 2, 3, 5, 8, 13, 3, x1 x2 xx1 x2 x x1 x2 x x1 x2 xx1 = x2 = 1;x = x1 + x2;x1 = x

18、2;x2 = x;x1 = 1;x1 = 1;x2 = 1;x2 = 1;printf (%6d%6d, x1, x2 ); /printf (%6d%6d, x1, x2 ); /* * 输出头两项输出头两项 * */ /for (i = 1; i = 8; i+) /for (i = 1; i = 8; i+) /* * 循环输出后循环输出后8 8项项 * */ /x = x1 + x2; /x = x1 + x2; /* * 计算新项计算新项 * */ / printf(%6d, x); printf(%6d, x); x1 = x2; / x1 = x2; /* * 更新更新x1x1和和x2 x2 * */ / x2 = x; x2 = x; C语言程序设计语言程序设计例例5 5:有一对兔子,从出生后第:有一对兔子,从出生后第3 3个月起每个月都生一对兔子,小个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?每个月的兔子总数为多少?=2.程序源代码:main()long f1,f2;int i;f1=f2=1;for(i=1;i=20;i+) pr

温馨提示

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

最新文档

评论

0/150

提交评论