11.2
随机生成五个乱码
#include<stdio.h>#include<stdlib.h>#include<time.h>int main(){srand(time(0));int i; //根据时间生成的数for(i=1;i<=5;i++){printf("%d\n",rand());}return 0;}
rand()
srand( )
time(0)
掷骰子
#include<stdio.h>#include<stdlib.h>#include<time.h>int main(){srand(time(0));int i;for(i=1;i<=5;i++){int dice;do { //掷骰子dice = rand();}while(dice<1||dice>6);printf("%d\n",dice);}return 0;}
系统规定数字的猜数字游戏100内
#include<stdio.h>#include<stdlib.h>#include<time.h>int main(){srand(time(0));int ans = rand()%100+1;int guess;do{printf("请输入一个数:");scanf("%d",&guess);if(guess>ans){printf("too large");} else if(guess<ans){printf("too small");}elseprintf("correct");}while(guess != ans);return 0;}
全域变数,静态区域变数,静态全域变数
不能用函数呼叫定义全域变数
不能用全域变数定义另一个全域变数
#include<stdio.h>static unsigned next = 1; //在本文档内可使用int count(void){static int k= 0; //在声明前加static表明为静态区域变数,可以防止误用k++;return k;}int main(){for(int i = 1;i<=5;i++){printf("%d\n",count());}return 0; //输出为1 2 3 4 5}
整数的溢位
用<limits.h>头文件中的 INT_MAX INT_MIN UINT_MAX 类似形式来求最大值
线性同除法
#include<stdio.h>int main(){unsigned int next = 1;for(int i = 1;i<= 5;i++){next = next *1103515245+12345;(利用无符号的限制来是系统自己除以一个数)print("%u\n",next);}return 0;}
X(n+1)=(X(n)*1103515245+12345)%(UINT_MAX+1)
