01test_07day

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;
}