0%

01test_07day

===================================
2022-7-8
===================================

循环语句(while)

while(是C语言的关键字)
1.while循环的使用
语句1
while(循环条件)
{
    循环的语句
}
语句2
                -------<----------<------
                |						^
                V						|
语句1->循环条件的判断(真)->循环的语句-->|
                |
                (假)->语句2->结束

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>

int main(void)
{
int i = 1;
int sum = 0;

while(i <= 100)
{
sum += i++;
}

printf("sum = %d\n", sum);

return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>

int main(void)
{
int i = 1;
int sum = 0;

while(i <= 100)
{
sum += i++;
}

printf("sum = %d\n", sum);

return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <unistd.h>

int main(void)
{
int i = 10, j = 10;

while(i-- || j--)
{
printf("i = %d j = %d\n", i, j);
sleep(1);
}

printf("=== i = %d j = %d\n", i, j);

return 0;
}

循环语句(do…while)

do...while循环(也是C语言的关键字)
语句1
do
{
    循环的语句
}while(循环的条件);
语句2
            --------<-----------<--------
            |							^
            V							|
语句1->循环的语句->循环条件的判断(真)--->
                        |
                        (假)->语句2->结束
while循环是先执行循环条件的判断,再执行循环的语句
do...while循环是先执行循环的语句,再执行循环条件的判断

while循环可以一次也不执行循环的语句
do...while循环至少会执行一次循环的语句

do...while : 在写底层内核驱动时,使用do...while循环做超时处理

*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>

int main(void)
{
int i = 1;
int sum = 0;

do
{
sum += i++;
}while(i <= 100);

printf("sum = %d\n", sum);

return 0;
}

随机函数

rand()		:	产生随机数(非负的正整数)的函数
    rand() % 1000; [0 ~ 999]以内的随机数
    随机产生5位数
    rand() % 90000;			[0 ~ 89999]
    rand() % 90000 + 10000;	[10000 ~ 99999]
    随机产生-50 ~ 50的随机数
    rand() % 100;			[0 ~ 99]
    rand() % 100 - 50;		[-50 ~ 49]
srand();	:	随机种子(可以保证每一次执行程序时,随机数可变)
    srand在调用时需要传参,参数是可变的因子
time();		:	时间种子(获取当前时间的秒数)
    time(NULL);
getpid();	:	进程种子(获取当前进程的ID号)

注意 : srand()函数在程序中值调用一次即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int num = 0;

printf("num = %d\n", num);

num = rand();

printf("num = %d\n", num);

return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <sys/types.h>
#include <unistd.h>

int main(void)
{
int i = 0;
int num = 0;

//srand(time(NULL));
srand(getpid());

for(i = 0; i < 5; i++)
{
num = rand() % 100 - 50;
printf("num = %d\n", num);
}

return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/*
猜数游戏
*/
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>

int main(void)
{
int T = 0;//用于保存随机数
int guess = 0;//用于保存录入的数
int i = 0;//循环变量

srand(getpid());//随机种子
T = rand() % 1001;//保存随机数

for(i = 1; ; i++)
{
scanf("%d", &guess);
if(T > guess)
printf("[%d] Small!\n", i);
else if(T < guess)
printf("[%d] Big!\n", i);
else
{
printf("[%d] Bingo!\n", i);
break;
}
}


return 0;
}