C语言程序解读-从简单到复杂--第三节:循环结构与重复执行

第三节课内容要求掌握的基本知识是:

①:掌握while和for循环的基本语法

②:理解循环控制语句(break、continue)

③:能够使用循环解决实际问题

第一题:数字猜谜游戏,电脑随机生成一个数字,操作者输入数字,二者相等时结束程序,输入数字比随机生成数字大时输出Too high,偏小时输出Too low。

参考答案:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    srand(time(0));
    int secret = rand() % 100 + 1;  // 1~100的随机数
    int guess, attempts = 0;
    
    while (1) {  // 无限循环,用break退出
        printf("Guess (1-100): ");
        scanf("%d", &guess);
        attempts++;
        
        if (guess == secret) {
            printf("Correct! Attempts: %d", attempts);
            break;
        } else if (guess < secret) {
            printf("Too low\n");
        } else {
            printf("Too high\n");
        }
    }
    return 0;
}

①:#include <stdlib.h>预处理指令,头文件包含了C语言的一些基本函数,例如:malloc()-分配内存、free()-释放内存、rand()和srand()--生成随机数。

内容扩展:

“<stdio.h>”包含了“文件相关输入/输出”函数的头信息。

“<stdlib.h>”包含了“内存分配/释放”函数的头信息。

rand()函数产生一个介于0到RAND_MAX之间的伪随机数,srand()函数用于设置rand()函数使用的随机数发生器的种子,

rand()函数在产生随机数之前会检查是否调用过srand()并设置了种子。如果没有设置种子,rand()函数会自动将种子设置为1,导致每次产生的随机数相同。因此,正确的做法是像参考答案顺序一样,在程序开始处调用一次srand(time()),然后直接使用rand()函数生成随机数,即可实现每次生成的随机数都不一样。
②:#include <time.h>预处理指令,其中包含一些时间函数。

③:while循环流程:

        1)检查条件:while()括号中的条件,根据题目要求编写,内容为1时表示为无限循环,用break退出!

        2)如果为真→执行循环体。

        3)如果为假→退出循环。

④:break语句:立刻跳出整个循环!

       continue语句:只跳出本次循环,跳出后循环继续。

第二题:打印*金字塔,结果如图:

参考答案: 

#include <stdio.h>

int main() {
    int rows = 4; // 控制行数
    for (int i = 1; i <= rows; i++) {
        for (int j = 1; j <= i; j++) {
            printf("*");
        }
        printf("\n");
    }
    return 0;
}

①:for循环,基本思路与while循环一致均是满足条件则循环执行,不同点在于for循环将循环变量初始化、条件检查、更新集中在一行即for后面的括号中,而while后的括号中只存放循环条件。

②:使用for循环时注意是内循环执行一轮后外循环(此处初学者可能会经常犯晕)

今天的内容就到这里啦,能坚持做一件事的人都很棒啊!加油!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值