我是靠谱客的博主 眼睛大含羞草,这篇文章主要介绍2013级C++第14周程序阅读,现在分享给大家,希望可以做个参考。

课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759

  1、阅读下面筛法求素数的程序,理解其算法。代码请从CSDN博客的课程主页上下载。如果对运行结果和其背后的原理仍不理解,请通过单步执行的手段跟踪理解,学会观察数组在运行过程中的变化。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream> #include <iomanip> using namespace std; int main() { const int M=200; const int N=((M+1)/2); int i,j,a[N]; a[0] = 2; for(i=1; i<(N-1); i++) //初始数组值实现第一步筛选 a[i] = 2*i+1; for(i=1; i<(N-1); i++) // 第二步筛选 if(a[i]!=0) for(j=i+1; j<N; j++) if(a[j]%a[i]==0) // 倍数时置零筛去 a[j]=0; cout<<"The primer are [2-"<<M<<"]:n"; for(i=0,j=0; i<N; i++) //显示得到的素数 { if(a[i]!=0) { cout<<setw(5)<<a[i]; //输出素数m,字段宽度为5 j++; //n用来累计输出素数的个数 if(j%10==0) cout<<endl; //输出10个数后换行 } } return 0; }

  提示1在阅读程序过程中,“画”出数组变化的过程将有助于你读懂程序。例如,下面是“初始数组值实现第一步筛选”后的数组

    

  提示2利用单步执行观察数组变化也是有效办法,下图是“第二步筛选”的循环过程中watch窗口看到的。

    

  2、下面的一段代码使用了输入重定向,运行下面的程序,体会这样处理的好处
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream> #include<cstdio> //可支持输入重定向 using namespace std; int main() { int c_inc=0, c_dec=0; double v, s_inc=0, s_dec=0; //freopen("input.txt","r",stdin); //输入重定向 while(cin>>v) { if(v>0) s_inc+=v, c_inc++; else if(v<0) s_dec+=v, c_dec++; } cout<<c_inc<<" "<<c_dec<<endl; cout<<(s_inc/c_inc)<<" "<<(-s_dec/c_dec)<<endl; return 0; }

  运行上面的程序,记得在输入完后要用CTRL-Z作为结束。
  去掉freopen前的注释,建立input.txt文件,其中输入一些数字。多次运行程序,体会这样做的便利性。修改input.txt中的数据,继续体会。
  若现在想将输出也重定向,如何处理?



==================== 迂者 贺利坚 CSDN博客专栏=================

|==  IT学子成长指导专栏  专栏文章分类目录(不定期更新)    ==|

|== C++ 课堂在线专栏   贺利坚课程教学链接(分课程年级)   ==|

======== 为IT菜鸟起飞铺跑道,和学生一起享受快乐和激情的大学 =======






最后

以上就是眼睛大含羞草最近收集整理的关于2013级C++第14周程序阅读的全部内容,更多相关2013级C++第14周程序阅读内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(82)

评论列表共有 0 条评论

立即
投稿
返回
顶部