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