一、while循环
while (条件表达式) {
循环语句;
}
如果条件表达式为真,会循环执行while的语句块,一旦条件表达式为假的时候,循环停止.
(1) while 语句中,表达式通常为条件或逻辑表达式,也可以是其他类型的表达式,只要表达式的值为非0,都会执行循环体语句.
(2) 循环体语句可以是一条,也可以是多条.如果是多条需要加上 { } 构成符合语句,因为while 语句到第一个分号处结束.
随机数:
arc4random() 返回一个随机数
如果要随机一个[a,b]范围内的整数
公式: arc4random() % (b - a + 1) + a
二 、do…while 循环
do {
循环语句;
} while (条件表达式);
do …. while 语句的执行特点是: 先执行循环体,再判断循环条件,直到条件不满足的时候,循环结束.
与 while 语句的执行特点刚好相反.
案例:密码登陆,超过三次不能再输入登录信息
三 、for 循环
for 语句是c语言中使用最灵活、功能最强大的循环语句。for 语句不仅可以用于循环次数已经确定的情况,也可以用于循环次数不确定、仅给出循环条件的情况。
for (循环变量初始化 ; 循环条件 ; 循环增量)
{
语句(循环体);
}
循环条件为真的时候,执行循环体.通常给循环变量加条件来控制循环的结束
注意:不要在 for () 后面加 ; ,会导致循环体为空。循环变量初始化可以省略,但其后面的分号不能省略
四 、break
在 switch 语句中我们接触过 break,break 是跳出 switch 语句块,执行 switch 语句块下面的语句
在循环中, break 主要作用是为了跳出本次循环,执行循环后边的语句,通常 break 语句总是与 if 语句连在一起使用
五、 continue
continue 语句会跳出某次循环的部分内容,继续下一次循环,不会结束循环.
作业
1.随机产生20个[10 , 100]的正整数,输出这些数以及他们中的最大数,最小数
int num1 = 0,max = 0,min = 100;
for (int i = 1; i < 21; i++)
{
num1 = arc4random() % 91 + 10;
printf("%d ",num1);
if (num1 > max )
{
max = num1;
}
//min = min > num1 ? num1 : min;
if (num1 < min)
{
min = num1;
}
}
printf("\nmax=%d min=%d\n",max,min);
2.编程将0-1000所有“水仙花数”打印出来,并打印其总个数。 “水仙花数”是一个 各个位立方之和等于该整数的三位数。
int i=0;
for (int num2 = 100; num2 < 1000; num2++)
{
int a = num2 % 10,b = num2 / 10 % 10,c = num2/100;
if (a * a * a + b * b * b + c * c * c == num2)
{
printf("%d ",num2);
i++;
}
}
printf("\n总个数为% d\n",i);
3.输入两个数,求最大公约数和最小公倍数。
int a = 0,b = 0,c = 0,d = 0;
printf("输入两个数:");
scanf("%d%d",& a,& b);
d = a * b;
if (a<b)
{
a = a + b;
b = a - b;
a = a - b;
}
while (b != 0)
{
c = a % b;
a = b;
b = c;
}
printf("最大公约数为:%d\n最小公倍数为:%d\n",a,d/a);
4.一个球从100m高度自由落下,每次落地后反跳回原来高度的一半,再落下,再反弹。求它在第10次落地时,共经过多少米?第10次反弹多高。
float H = 100,h = 0,s = H;
for (int n = 1; n < 11; n ++)
{
s = s + 2*h;
H = H/2;
h = H;
}
printf("小球第十次落地式共经过%f米\n第十次反弹%f米\n",s,h);
5.已知abc+cba = 1333,其中a,b,c均为一位数,编程求出满足条件的a,b,c所有组合。
int a1 = 0,b1 = 0,c1 = 0;
for (a1 = 1; a1 < 10; a1 ++)
{
for (b1 = 0; b1 <10; b1 ++)
{
for (c1 = 1; c1 < 10; c1 ++)
{
if (101 * a1 + 20 * b1 + 101 * c1 == 1333)
{
printf("a=%d b=%d c=%d \n",a1,b1,c1);
}
}
}
}