一. 需完成的操作
- 产生不重复的随机数
- 设置阅读时间
- 进行随机数的销毁
- 请用户输入
- 判断输入是否正确;正确->继续;错误->退出;
- 产生多一位的随机数
- 重复上述的编程过程
二. 编程过程
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
int main(){
int count = 3; //记录每次生成多少个随机数
unsigned int seed = time(NULL); //1000
//设置随机数的种子
srand(seed);
for(int i = 0; i < count; i++){
//生成一个随机数
int temp = rand() % 9 + 1;
printf("%d ", temp);
}
printf("\n");
// 延时2s
Sleep(2000);
//for(int i = 0; i < 10000000000/15*2; i++);
//刷新屏幕
system("cls");
/* mac
for(int i = 0; i < 20; i++){
printf("\n");
}
*/
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;
}
三. 新的知识点
产生随机数
1.利用rand函数输出随机数,导入头文件<stdlib.h>和<time.h>;利用srand()来记录随机数。
但这样取的随机数,当我们进行下一次循环,再去取随机数的时候会取到相同的随机数,这时就要去设置一个种子,以时间为种子,用srand()函数去记录产生的种子,由于每次产生随机数的时间都不相同,致使不会产生相同的随机数。
2.上面的程序设置了两个种子,这样的设置是为了程序之中的判断操作,
由于两个种子之间的时间间隔很小,使得两个种子取的随机数相同,再
将第二个种子,再将第二个种子和用户输入的数进行比较,可进行判断
操作
注意:若两个种子之间之间的程序太多;就会使得两个生随机数不同,这时就要使得我们所设置的时间变量统一,即初始化时就定义变量,即:
unsigned int seed = time(NULL); srand(seed);
使得两种子之间无时间差距,自然取得的随机数就会相同
延时设置
1.利用Sleep()函数来进行睡眠,要输入头文件<windows.h>
如:#include<windows.h> Sleep(2000);
此时就表示睡眠2秒
注意:‘Sleep’中S要大写
2.也可以利用for循环来实现
如:for(i=0;i<10000000000/15;i++);
表示睡眠1秒钟
刷屏的设置
采用了\n和for循环的使用使得当睡眠时间结束的时候,开始执行for循环连续进行换行操作
如for(int i=0;i<100;i++){ printf("\n"); }
就会连续进行换行100次;
退出操作
利用exit(EXIT_SUCCESS);输入头文件<stdlib.h>
这样的操作表示安全退出;