C语言-004

六、循环语句

1. while 循环

基本概念
  • while翻译为 “当”,while循环的含义是:当条件满足时,不断重复执行循环体内的语句
  • 条件成立是循环继续执行的前提。
结构

c

运行

while (条件表达式) {
    循环体语句;
}
核心注意点
  • 循环体内必须要有改变条件的机会,否则会造成死循环。
示例:数位数算法

需求:计算一个整数的位数算法步骤

  1. 用户输入整数x
  2. 初始化计数器n0
  3. 执行x = x / 10,去掉x的个位数字
  4. 计数器n++
  5. 如果x > 0,回到步骤 3 继续执行
  6. 否则,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表示输入结束。
  • 程序计算这些数字的平均数,输出数字的个数和平均数。
算法步骤
  1. 初始化变量sum = 0count = 0
  2. 读入数字num
  3. 如果num != -1,执行sum += numcount++,回到步骤 2。
  4. 如果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为例

  1. 1234 % 10 = 4 → 得到个位数字 4
  2. 1234 / 10 = 123 → 去掉个位
  3. 123 % 10 = 3 → 得到十位数字 3
  4. 123 / 10 = 12 → 去掉十位
  5. 以此类推,直到整数变为 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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值