- 1、本文档共48页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
北京交通大学c语言复习题讲解
* 共循环了多少次? 完整程序1:一层for循环(利用自定义函数) #includestdio.h int sq(int n) {int m,f=0; for (m = 1; m * m = n; m++) if (m * m == n) f=1; return f; } int main() { int m, n; for(n=1; n = 200; n++) if(sq(n)) printf(%d , n); printf(\n); return 0; } 函数定义 函数调用 * 完整程序2:两重for循环(只有主函数) #includestdio.h int main() { int m, n; for(n=1; n = 200; n++) for (m = 1; m * m = n; m++) if (m * m == n) printf(%d , n); printf(\n); return 0; } 内层循环结束的两种情况: 1,找到m使m*m==n(n是完全平方数) 2,试探了所有可能,但都不成功(n不是) 共循环了多少次? * 具有累计循环次数功能的完整程序: #include stdio.h int main () { int m, n, count = 0; for (n = 1; n = 200; n++) for (m = 1; m * m = n; m++) { count++; if (m * m == n) printf(%d , n); } printf(“%d\n“, count); return 0; } 共循环了1799次 * 方法二:需要打印的一定是从1开始连续几个整数的平方,可从1开始打印到平方大于200为止。 for (n = 1; n * n = 200; ++n) printf(%d , n * n); /*注意打印什么*/ 方法一产生所有备选数据(1到200的整数),检查排除不合格的。生成与检查是解决问题的常用方法。 方法二是针对具体问题的特定方法。 * #includestdio.h int main() { int termn, n; for (n = 1,termn = 1;termn = 200; n++) { printf(%4d,termn); termn += 2*n+1; } return 0; } 方法三:还可以考虑利用递推公式求平方数程序: * 例2,艰难旅程(浮点误差)。乌龟要去环球。第1秒爬1米,第2秒爬1/2米,第3秒爬1/3米,第4秒爬1/4米,…。问一小时能爬出多远?爬20米需多少秒? 一小时能爬多远算法: 1.d(距离,实数); s(时间,整数); 2. d=0.0;s=1; 3. d=d+1/(实数)s; s=s+1; 4.如果s=3600,转3; 5.否则,输出d; 爬20m需多少秒算法: d(距离,实数); s(时间,整数); d=0.0,s=1; d=d+1/(实数)s;s=s+1; 如果d20.0,转3; 否则,输出s-1; 根据数学,乌龟能完成环球,可以爬得任意远。 这里想比较float和double的计算误差情况。 s-1? * n秒能爬x米的函数float distfun(long n) float distfun(long n) { long i; float x = 0.0; for (i = 1; i = n; ++i) x += 1/(float)i; return x; } 例2,艰难旅程(浮点误差)。乌龟要去环球。第1秒爬1米,第2秒爬1/2米,第3秒爬1/3米,第4秒爬1/4米,…。问一小时能爬出多远?爬20米需多少秒? * 例2,艰难旅程(浮点误差)。乌龟要去环球。第1秒爬1米,第2秒爬1/2米,第3秒爬1/3米,第4秒爬1/4米,…。问一小时能爬出多远?爬20米需多少秒? 20米需要多少时间。写出下面函数: long scndsfun(float d) /*d为爬行距离*/ { long i; float x = 0.0; for (i = 1; x d; ++i) x += 1/(float)i; return i - 1; } d=20 * 写下面语句,执行时总也不输出: printf(%lds, %fm\n,scndsfun(20.),20.); 修改为如下语句: for (x = 10.0; x = 20.0; x +
文档评论(0)