C++课堂笔记三
for循环
1 | for(表达式1;表达式2;表达式3) { |
1 | 例如: |
for循环结构里的表达式1和表达式3都可以是用逗号连接的如干个表达式
1 | for(int i=15, j=0; i>j; i-=2,j+=3) // i=i+2,j=j+3 |
for循环可以嵌套,形成多重for循环
1 | for(int i=0;i<n;++i) |
例题: 给定正整数n和m,在1至n这n个数中,取出两个不同的数,使得其和是m的因子,问有多少种不同的取法?(穷举1-n这n个数中取两个数的所有取法,对每一种取法,判断其和是不是m的因子)
1 | int n,m; |
while循环和do…while循环
例题: 输入若干个(至少一个)不超过100的正整数,输出其中的最大值、最小值以及所有数的和。输入的最后一个数是0,标志着输入结束。
1 | int sum=0, maxN = 0, minN = 200, n; |
do…while循环(如果希望循环至少要执行一次,可用)
1 | do{ |
例:输出1到10000以内所有2 的整数幂
1 | int n = 1; |
break语句和continue语句
break语句 (可以出现在循环体中(for while do…while),作用是跳出循环
1 | int n =0; |
例题:如果两个不同的正整数,他们的和是他们的积的因子,就称这两个数为兄弟数,小的为弟数,大的为兄数。(枚举)
1 | int n,m; |
continue语句
可以出现在循环体中,作用是立即结束本次的循环,并回到循环开头判断是否要进行下次循环
例:输出1—10的偶数
1 | for (int i=1;i<=10;++i){ |
OJ编程题输入数据的处理
1 | scanf表达式的值 |
用freopen重定向输入
调试程序时,每次运行程序都要输入测试数据,麻烦可将测试数据存入文件,然后用freopen将输入由键盘重定向为文件,则运行程序时不再需要输入数据
例如:
1 | int main(){ |