标签:问题: for sum 无效 ++ for循环结构 两种 选择结构 代码
循环类语句包括for循环语句、while循环语句和do...while循环语句三种,用它们来解决实际应用中需要重复处理的问题。如当统计全班同学总分时,就需要重复地做加法,依次把每个人的分数累加起来。
格式
for (控制变量初始化; 条件表达式; 增量表达式) {
语句1;
语句2;
...
}
说明:花括号中的内容为循环体部分,如果循环体中只有一条语句,花括号可以省略;如果循环体中应该有多条语句,但是忘了加花括号,则编译器会把离for最近的一条语句当做循环体。
for语句的执行过程可由以下4步来描述:
格式举例
for(i = 1; i <= 100; ++i) //将控制变量从1变到100,增量为1
for(i = 100; i >= 1; --i) //将控制变量从100变到1,增量为-1
for(i = 7; i <= 77; i += 7)//控制变量从7变到77,增量为7
for(int i = 20; i >= 2; i -= 2)//控制变量从20变到2,增量为-2
for(int j = 99; j >= 0; j -= 11)//按所示数列改变控制变量值:99、88、77、66、55、44、33、22、11、0,增量为-11
for (int i = 1, j = 2; i <= 99 && j <= 100;i += 2,j += 2)//控制变量i和j共同进行循环控制,i从1变到99,j从2变到100,增量均为2。
需要说明的是:可以在for循环“ 控制变量初始化语句”中声明变量(如上面最后3个例子),这些变量只在for循环结构中有效,离开了该for结构,变量就无效了。
例题:利用for循环,计算输出\(1+2+…+100\)的和。
#include <cstdio>
int main() {
int sum = 0;
for (int i = 1; i <= 100; ++i) {
sum += i;
}
printf("%d\n", sum);
return 0;
}
格式
while (条件表达式) {
语句1;
语句2;
...
}
说明:while语句循环体部分与for语句的规则相同
语句执行过程
格式举例
当i的值小于10,重复执行++i语句
i=0;
while (i < 10)
++i;
当输入的数据小于0时,重复读数据。
scanf("%d", &x);
while (x < 0)
scanf("%d", &x);
例题:求\(s=1+2 +3……+n\),当加到第几项时,\(s\)的值会超过\(1000\)?
#include <cstdio>
int main() {
int n = 0, sum = 0;
while (sum <= 1000) {
++n;
sum += n;
}
printf("加到第%d项时,s会超过1000\n", n);
return 0;
}
格式
do {
语句1;
语句2;
...
} while (条件表达式);
说明:循环体部分的规则与上面的两种相同
语句执行过程
例题:对于求两个正整数m, n的最大公约数可以用do—while实现。
#include <cstdio>
int main() {
int m, n, r;
scanf("%d%d", &m, &n);
do {
r = m % n;
m = n;
n = r;
} while (r != 0);
printf("最大公约数为:%d\n", m);
return 0;
}
#include <cstdio>
int main() {
int n = 0, t = 1, sum = 0;
scanf("%d", &n);
for (int i = 1; i <= n; ++i) {
t = 1;
for (int j = 1; j <= i; ++j) {
t *= j;
}
sum += t;
}
printf("%d\n", sum);
}
问题:
标签:问题: for sum 无效 ++ for循环结构 两种 选择结构 代码
原文地址:https://www.cnblogs.com/hbhszxyb/p/12232076.html