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");
}else
printf("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)