while(表达式){
语句;
}
流程图
在控制台输出1-30
#include <stdio.h>
void main() {
int i = 1;
while (i <= 30)
{
printf("%d,", i);
i++;
}
}
求sum = 1+2+3+...+100
解题思路
#include <stdio.h>
void main() {
int sum = 0;
int i = 1;
while (i <= 100)
{
sum = sum + i;
i++;
}
printf("%d\n", sum);
}
先执行循环体,再判断, do...while 循环会确保至少执行一次循环
do{
语句;
}
while (表达式);
求sum = 1+2+3+...+100,用do...while实现
#include <stdio.h>
void main() {
int sum = 0;
int i = 1;
do{
sum = sum + i;
i++;
} while (i <= 100);
printf("%d\n", sum);
}
for ( 表达式1; 表达式2; 表达式3)
{
语句;
}
流程图
求sum = 1+2+3+...+100,用for实现
#include <stdio.h>
void main() {
int sum = 0;
for (int i = 1; i <= 100;i++) {
sum = sum + i;
}
printf("%d\n", sum);
}
省略了表达式1。
#include <stdio.h>
void main() {
int sum = 0;
int i = 1;
for (; i <= 100;i++) {
sum = sum + i;
}
printf("%d\n", sum);
}
省略了表达式2(循环条件),则不做其它处理时便成为死循环。
#include <stdio.h>
void main() {
int sum = 0;
for (int i = 1;;i++) {
sum = sum + i;
}
printf("%d\n", sum);
}
省略了表达式3。
#include <stdio.h>
void main() {
int sum = 0;
for (int i = 1;i <= 100;) {
sum = sum + i;
i++;
}
printf("%d\n", sum);
}
一般形式:
goto 语句标号; //语句标号由字母、数字和下划线组成,不能使用整数
...
语句标号: 语句;
流程图
求sum = 1+2+3+...+100,用goto和if实现
#include <stdio.h>
void main() {
int sum = 0;
int i = 1;
loop: if (i <= 100) {
sum = sum + i;
i++;
goto loop;
}
printf("%d\n", sum);
}
h = pow(2,n); n=n+1;
(pow是计算次方的函数)假设一张纸足够大并且可以无限折叠,这张纸的厚度是1mm,那么这张纸折叠多少次可以到达珠穆朗玛峰的高度(8848m)?
// while循环
#include <stdio.h>
#include <math.h>
void main() {
int h = 0, n = 0;
while (h <= 8848000)
{
h = pow(2, n);
n++;
}
printf("%d\n", n - 1);
}
// for循环
#include <stdio.h>
#include <math.h>
void main() {
int n, h=0;
for (n=0;h <= 8848000;n++)
{
h = pow(2, n);
}
printf("%d\n", n - 1);
}