目录
前言
前⾯学习了三种循环 while , do while , for ,这三种循环往往会嵌套在⼀起才能更好的解决
问题,就是我们所说的:循环嵌套。
一、嵌套是什么
所谓循环嵌套,通俗来讲,即一个循环中包含一个或多个循环,而这往往是我们在C语言中常常用到的,下面我们来看看一个案例;
二、练习
1. 题目
找出100~200之间的素数,并打印在屏幕上。
注:素数⼜称质数,只能被1和本⾝整除的数字
2. 题目解析
- 要从100~200之间找出素数,⾸先得有100~200之间的数,这⾥可以使⽤循环解决。
- 假设要判断i是否为素数,需要拿2~i-1之间的数字去试除i,需要产⽣2~i-1之间的数字,也可以使⽤循环解决。
- 如果2~i-1之间有数字能整除i,则i不是素数,如果都不能整除,则i是素数。
3. 代码分析
首先我们来产生100~200之间的数,这我们很容易想到用for循环来实现;
for (i = 100; i <= 200; i++)
接下来我们就要用产生的i,来看看i是不是素数,根据素数的定义,所以我们就要产生2~i-1,来试试是否能被整除,所以我们有如下模块:
for (j = 2; j < i; j++)
if (i % j == 0)
但是如果i是素数,我们就要打印这个数,所以我们需要一个“标志”来传递这个信息,那这时,我们可以 定义一个变量flag;,假设flag唯一是素数,flag为0则不是;
在此基础上,我们还可以定义一个计数变量count,打印一个素数,加1,最后打印出来;
4. 代码展示
int main()
{
int i = 0;
int count = 0;
for (i = 100; i <= 200; i++)
{
int j = 0;
int flag = 1; //假设i是素数
for (j = 2; j < i; j++)
{
if (i % j == 0)
{
flag = 0; //可见i不是素数
break;
}
}
if (flag == 1)
{
printf("%d ",i);
count++;
}
}
printf("\ncount = %d", count);
return 0;
}
运行结果展示:
总结
今天我们用一个案例来理解了什么是循环的嵌套,我们下期来讲goto语句,还有讲一下C语言中怎么生成随机数,夏日炎炎,考研加油!