六、循环语句
1. while 循环
基本概念
- 把
while翻译为 “当”,while循环的含义是:当条件满足时,不断重复执行循环体内的语句。 - 条件成立是循环继续执行的前提。
结构
c
运行
while (条件表达式) {
循环体语句;
}
核心注意点
- 循环体内必须要有改变条件的机会,否则会造成死循环。
示例:数位数算法
需求:计算一个整数的位数算法步骤
- 用户输入整数
x - 初始化计数器
n为0 - 执行
x = x / 10,去掉x的个位数字 - 计数器
n++ - 如果
x > 0,回到步骤 3 继续执行 - 否则,
n的值就是该整数的位数
代码示例
c
运行
int x, n = 0;
scanf("%d", &x);
while (x > 0) {
x /= 10;
n++;
}
printf("该整数的位数是:%d\n", n);
2. do-while 循环
基本概念
- 进入循环时不先检查条件,而是先执行一轮循环体代码。
- 执行完循环体后,再检查循环条件。条件满足则继续下一轮,不满足则结束循环。
结构
c
运行
do {
循环体语句;
} while (条件表达式);
核心特点
- 循环体至少会被执行一次,这是它和
while循环的关键区别。
七、循环相关实战案例
1. 猜数游戏
需求
- 计算机生成一个随机数,让用户来猜。
- 用户每输入一个数,程序告知猜大了还是猜小了。
- 直到用户猜中为止,最后告知用户猜的次数。
核心思路
- 利用循环实现重复猜数的过程。
- 重点关注循环终止条件,即用户输入的数等于随机数。
- 随机数获取:每次调用
rand()函数可以得到一个随机整数。
2. 计算平均数
需求
- 用户输入一系列正整数,输入
-1表示输入结束。 - 程序计算这些数字的平均数,输出数字的个数和平均数。
算法步骤
- 初始化变量
sum = 0、count = 0。 - 读入数字
num。 - 如果
num != -1,执行sum += num和count++,回到步骤 2。 - 如果
num == -1,计算并打印平均数(注意转换为浮点型计算)。
代码示例
c
运行
int sum = 0, count = 0, num;
do {
scanf("%d", &num);
if (num != -1) {
sum += num;
count++;
}
} while (num != -1);
if (count > 0) {
printf("数字个数:%d,平均数:%.2f\n", count, (double)sum / count);
}
八、整数的分解方法
核心技巧
- 对整数做
% 10操作:得到该整数的个位数字。 - 对整数做
/ 10操作:去掉该整数的个位数字。 - 重复上述两步,依次获取十位、百位、千位等数字。
示例思路
以整数1234为例
1234 % 10 = 4→ 得到个位数字 41234 / 10 = 123→ 去掉个位123 % 10 = 3→ 得到十位数字 3123 / 10 = 12→ 去掉十位- 以此类推,直到整数变为 0 为止
#include <stdio.h>
int main()
{
int x;
int n=0;
scanf("%d",&x);
n++;
x /=10;
while ( x> 0 ){
n++;
x /=10;
}
printf("%d\n",n);
return 0;
}
9662

被折叠的 条评论
为什么被折叠?



