C 入门 第三节
// 程序循环结构: 当复合某个条件时,重要执行某段代码.
// 循环控制语句: for while do...while
// 循环作用: 减少重复冗余代码,增加代码可读性,易于维护.
//
#pragma mark ----------while-------------
/*
while 当:条件表达式为真或者假
while (条件表达式)
{
语句;
}
int a = 0;
while (a < 10)
{
printf("我帅呆了\n");
a++; //循环增量;
}
int a = 10;
while (a <= 50)
{
printf("%d ",a);
a++;
}
*/
/* // 用while打印出1~100之间7的倍数
int a = 1;
while (a < 100)
{
if (a % 7 == 0)
{
printf("%d\n",a);
}
a++;
}
//用while打印出1~100之间个位为7的数。
int a = 1;
while (a <= 100)
{
if (a % 10 ==7)
{
printf("%d ",a);
}
a++;
}
//用while打印出1~100之间⼗十位为7的数
int a = 1;
while (a <= 100)
{
if (a / 10 ==7)
{
printf("%d ",a);
}
a++;
}
//用while打印出1~100之间不是7的倍数并且不包含7的数。
int a = 1;
while (a <= 100)
{
if (a % 10 !=7)
{
if (a / 10 != 7)
{
if (a % 7 != 0 )
{
printf("%d ",a);
}
}
}
a++;
}
*/
#pragma mark --------随机数--------
/* 1 . arcdrandom() 返回一个随机数
2 . 获取某个范围的随机数
(1) 获取[a,b]范围内的随机数即[0,b-a]
arc4random()%(b - a + 1) + a;
//⽤用户从控制台输⼊入⼀一个n,⽤用while打印n个随机数(范围为10~30)
int n ;
int a = 1;
scanf("%d",&n);
while (a <= n)
{
printf("%d ",arc4random()%(30 - 10 + 1) + 10);
a++;
}
//用户从控制台输⼊入⼀一个n,⽤用while打印n个随机数(范围为30~70), 找出n个随机数中的最⼤大值
int n ;
int a = 1;
int c , b , w = 0;
printf("输入n个数\n");
scanf("%d",&n);
while (a <= n)
{
c = arc4random()%(70 - 30 + 1) + 30;
printf("%d ",c);
a++;
b = c;
w = w > b ? w : b;
}
printf("\n%d\n",w);
*/
#pragma mark ------------break和continue------------
/*
break:提前结束循环
1 . switch语句中,结束case,跳出switch语句
2 . 在循环中,跳出本层次循环,break之后的代码部再执行
3 . break只能用于循环和switch语句中,不能单独使用
continue: 提前结束本轮循环
1 . 在循环中,跳出本轮循环
2 . continue之后的代码不再执行,直接进入下一次循环
*/
//打印1~50直接的数字,里面部包含7的倍数
#pragma mark ------for-------
/*
for (循环变量初始化;循环条件;循环增量)
{
语句
}
for (int i=1; i <= 50; i++)
{
printf("%d ",i);
}
printf("\n\n\n");
//实现乘法⼝口诀表
for (int i = 1; i <= 9; i++) //控制列
{
for (int z = 1; z <= i; z++) //控制行
{
printf("%d ",z);
printf("* %d",i);
printf(" = ");
printf("%d ",z * i);
}
printf("\n");
}
printf("\n");
for (int i = 0; i < 4; i++)
{
for (int k = 4; k >= i; k--)
{
printf(" ");
}
for (int j = 0; j <= i; j++)
{
printf(" *");
}
printf("\n");
}
for (int a = 5; a > 0; a--)
{
for (int b = 5; b >= a; b--)
{
printf(" ");
}
for (int c = 0; c < a; c++)
{
printf(" *");
}
printf("\n");
}
*/
//打印三个数字(0 - 9)的组合可能(组合成三位数)。
//scanf("%d%d%d",&a,&b,&c);
/*
int i ;
for (i = 0; i <=999; i++)
{
printf("%03d ",i);
}
//或者
for (int i = 0; i <= 9; i++)
{
for (int j = 0; j <= 9; j++)
{
for (int z = 0; z <= 9; z++)
{
printf("%d",i);
printf("%d",j);
printf("%d ",z);
}
}
}
*/
#pragma mark -----for循环和while循环的区别
int i = 0;
for (; i < 5; )
{
printf("小金刚 ");
i++;
}
printf("\n");
int j = 0;
while (j < 5)
{
printf("小金刚 ");
j++;
}
printf("\n");