引言:随机生成四个0-9的正整数,然后操作者在提示下输入刚刚看见的四个数,如果正确,系统就提示正确,否则就错误并退出程序。
一、先来搞定头文件
#include <stdio.h>
#include <stdlib.h> //引入函数:exit() srand() system()
#include <time.h> // 引入函数:time()
#include <windows.h> // 引入函数:Sleep()
如图注释的文字说明,各个头文件分别对这个程序所需要的函数的对应关系。
二、基本的随机数生成
int main(){
int count = 4; //记录每次生成多少个随机数
while(1){
unsigned int seed = time(NULL); //1000
//设置随机数的种子
srand(seed);
for(int i = 0; i < count; i++){
//生成一个随机数
int temp2 = rand() % 9 + 1;
printf("%d ",temp2);
}
printf("\n");
随机数的生成,死循环whlie(1)使其能够一直反反复复的生成随机数,执行整个过程。srand(seed);是用来播种随机数种子的,for循环用来生成四个随机数,随机数temp2=rand()%9+1表示生成的随机数是1-9之间的正整数。
三、关于随机数延时(即停留时间)和刷新屏幕
// 延时2s
Sleep(2000);
//for(int i = 0; i < 10000000000/15*2; i++);
//刷新屏幕
system("cls");
/*
mac
for(int i = 0; i < 20; i++){
printf("\n");
}
*/
Sleep函数用来停留延时,而system函数用来刷新屏幕。
四、核心操作
int temp;
printf("请输入:");
//重新设种子和之前生成时的种子一样
srand(seed);
//接收用户输入 一个一个接收
// 1 2 3
// 1 2 4
for(int i = 0; i < count; i++){
scanf("%d", &temp);
//获取对应的生成的随机数
int old = rand() % 9 + 1;
//比较输入的和随机数是否相同
printf("old:%d\n", old);
if (temp != old){
printf("错误 退出!\n");
exit(EXIT_SUCCESS);
}
}
printf("正确!\n");
}
return 0;
}
重新播种是为了让下一次的随机数与上一次不同,同样for循环控制输入的四个数并判断是否与之前显示的相等,正确就执行下一次循环,否则就由exit控制退出程序。