getchar()是在终端接收一个字符
注意:当上一次有输入的情况下,必须将上一次缓冲区里面的内容清空
清空方式:
1:多加一个getchar(),拿走上一次的\n。
2:fflush(stdin); 刷新输入流,也就是清除缓冲区。
exit是在任何一种情况下都能退出程序,用之前必须导入一个头文件#include<stdlib.h>而return表示结束当前这个函数
exit(EXIT_SUCCESS);成功退出 exit(EXIT_FAILURE)错误退出
1 2 3 4
2s之后消失
输入:1 2 3 4
3 2 1 5 5
2s
输入: 3 2 1 5 5
猜对了就继续加,猜错了就停止
system("cls")可以用来刷屏
还有一个是导入#include<windows.h>然后输入Sleep(),()里面写时间,单位是毫秒,比如睡两秒 ,则Sleep(2*1000);
rand 当程序运行起来,系统自动产生一个种子,使用rand产生随机数之后,重新启动程序,再次使用rand,会发现种子是一样的。所以,只要种子一样,产生的随机数就一样,若需要每次重新运行都产生不一样的随机数,则需要更改种子,
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
int main(){
int count = 3; //记录每次生成多少个随机数
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");
// 延时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);
}
}
count++;
}
return 0;
}