c++入门教程(十)

来源:互联网 发布:宾得 知乎 编辑:程序博客网 时间:2024/06/04 23:26

事前日常敲黑板

(1)到上节结束,常用的循环和判断算是结束了。每种判断结构和循环结构都类似于流程图中的某一块特定方式的组合。前面说过,编程就是把我们的思路用电脑理解的语言告诉电脑。而流程图就可以被看作是我们的思路。在流程图中,我们可以把它们像拼积木一样拼在一起来解决问题,在实际的程序,它们也是可以拼在一起的。(前面我们已经用嵌套的方式把多个if结构拼在了一起,现在来试一下 把循环拼在一起)

然后尝试解决一下昨天的问题

乘法表我们来一行行看,发现有下面的特征

首先每一行最左面的是1~9,然后每行的列数等于当前行数

总结出的规律是

每行左面数字等于当前行数,右面数字为1~当前行数

九行中每一行都具有上面的规律

然后 我们发现了啥   是规律,没错,就是 "规律"

既然每一行都有相同模式,那么 可以考虑使用循环了。(因为总行数是确定的,所以一般这种情况我使用for循环)

开始流程图


蓝色框住的循环比较大,所以是外层的循环。红色框住的循环相对比较小,所以在大循环的里面。

代码如下

首先是大循环

#include <iostream>using namespace std;void main(){for(int a=1; a<=9; a++ ){}}
然后把昨天写好的程序稍微改一改变成小循环放到大循环里

#include <iostream>using namespace std;void main(){for(int a=1; a<=9; a++ ){for(int i=1; i <= a; i++){cout<<a<<" * "<<i<<" = "<<a*i<<"  ";}  cout<<endl;}}

然后,结果如下


然后我们发现有些地方仿佛对的不是很齐,因为有些结果只有一位,所以再改进一点,用空格把缺的位置补上

#include <iostream>using namespace std;void main(){for(int a=1; a<=9; a++ ){for(int i=1; i <= a; i++){cout<<a<<" * "<<i<<" = "<<a*i<<"  ";if(a*i < 10){cout<<" ";}}  cout<<endl;}}

结果如下


然后我们发现第一列和第二列之间的空隙仿佛比其它的大,所以 再改一点(每行只有不是第一列才在后面补空格)

#include <iostream>using namespace std;void main(){for(int a=1; a<=9; a++ ){for(int i=1; i <= a; i++){cout<<a<<" * "<<i<<" = "<<a*i<<"  ";if(a*i < 10){if(i != 1){cout<<" ";}}}  cout<<endl;}}
结果如下

这回看起来顺眼多了呢

到现在,貌似已经可以用c++做很多事情了呢。试试输入一个数然后判断这个数是否是质数

提示:

整除的话相当于   余数为0

可以设计一个标记   来记录是否存在满足条件的状况