05第五讲分析.ppt

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
05第五讲分析

第五讲 循环结构程序设计 问题提出 int result1,result2,result3; int result4,result5; result1 = 1 * 10; printf(1 × 10 = %d \n,result1); result2 = 2 * 10; printf(2 × 10 = %d \n,result2); result3 = 3 * 10; printf(3 × 10 = %d \n,result3); result4 = 4 * 10; printf(4 × 10 = %d \n,result4); result5 = 5 * 10; printf(5 × 10 = %d \n,result5); C 语言中的三种循环 语言程序设计教程 第六章 循环结构程序设计 C 【例】求1~100之间的所有素数 问题分析: 素数是指除了能被1和它本身整除外,不能被其它任何整数整除的数。例如,17就是一个素数,除了1和17之外,它不能被2~16之间的任何整数整除。根据素数的这个定义,可得到判断素数的方法: 把m作为被除数,把i = 2 ~ (m-1)依次作为除数,判断被除数m与除数i相除的结果,若都除不尽,即余数都不为0,则说明m是素数,反之,只要有一次能除尽(余数为0),则说明m存在一个1和它本身以外的另一个因子,它不是素数。 事实上,根本用不着除那么多次,用数学的方法可以证明:只需用2~ 之间(取整数)数去除m,即可得到正确的判定结果。 这一思路的算法如下: 从键盘输入一正整数m。 计算k = i从2变化到k,依次检查m % i是否为0。 若m % i为0,则判定m不是素数,并终止对其余i值的检验;否则,令i = i + 1;并继续对其余i值进行检验,直到全部检验完毕为止,这时判定m是素数。 #include stdio.h #include math.h void main ( ) { int m, i, k; printf (input a number: “); scanf (%d, m); k = sqrt (m); i = 2; while (i = k) { if (m % i == 0) break; i++; } if (i k) printf (yes\n); else printf (no\n); } while循环 #include stdio.h #include math.h void main ( ) { int m, i, k; printf (input a number: “); scanf (%d, m); k = sqrt (m); for (i = 2; i = k; i++) if (m % i == 0) break; if (i k) printf (yes\n); else printf (no\n); } for循环 #include stdio.h #include math.h void main ( ) { int m, i, k; printf (input a number: “); scanf (%d, m); k = sqrt (m); i = 2; do { if (m % i == 0) break; i++; } while (i = k); if (i k) printf (yes\n); else printf (no\n); } do_while循环 循环结构程序设计举例 【例1】验证哥德巴赫猜想:任一充分大的偶数,可以用两个素数之和表示。例如:4 = 2 + 2,6 = 3 + 3,98 = 19 + 79 这一思路的算法如下: 读入大于3的偶数n。 p = 1 do { p = p + 1; q = n - p; p是素数吗? q是素数吗? } while p、q有一个不是素数。 输出n = p + q。 问题分析: 读入一个偶数n,将它分成p和q,使n = p + q。怎样分呢?可以令p从2开始,每次加1,而令q = n - p,如果p、q均为素数,则正为所求,否则令p = p + 1再试。 flagp = 1; for (j = 2; j = (in

文档评论(0)

441113422 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档