第三节课内容要求掌握的基本知识是:
①:掌握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循环时注意是内循环执行一轮后外循环(此处初学者可能会经常犯晕)
今天的内容就到这里啦,能坚持做一件事的人都很棒啊!加油!