#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
void menu(){
printf("*************************\n");
printf("****** 1. play ******\n");
printf("****** 0. exit ******\n");
printf("*************************\n");
}
void game(){
int ret = 0;
int guess = 0;
ret = rand() % 100 + 1;
printf("游戏开始\n");
printf("请输入您想要猜的数字(1~~100):");
while (1){
while (!scanf("%d", &guess)){
getchar();//用于吃掉输入的非数字字符!
}
if (guess > ret){
printf("猜大了,请继续猜测:");
}
else if (guess < ret){
printf("猜小了,请继续猜测:");
}
else{
printf("恭喜您,猜正确了!!!\n");
break;
}
}
}
int main(){
int input = 0;
srand((unsigned int) time(NULL));
do{
menu();
printf("请输入您的选择:");
scanf("%d", &input);
switch (input){
case 1:
game();
break;
case 0:
printf("退出游戏!\n");
break;
default:
printf("输入有误,请重新输入!\n");
break;
}
} while (input);
system("pause");
return 0;
}
一个小游戏的建立需要开始与结束,我们首先通过写menu函数对其尽行引导。
rand()函数
rand()函数是一个产生随机数的函数!
#include<stdlib.h>
int rand(void);
rand()返回值为随机数值,范围在0至RAND_MAX 间(RAND_MAX值为2147483647),但是直接调用rand()函数是有缺陷的!!!
举例:
#include<stdio.h>
#include<stdlib.h>
int main(){
int i;
for (i = 0; i < 10; i++){
printf("%d ", rand() % 10);
}
printf("\n");
system("pause");
return 0;
}
运行结果:
程序重复运行,结果是不会变的!
注释:在使用rand()函数前,必须先利用srand()设好随机数种子。如果未设随机数种子,rand()在调用时会自动设随机数种子为1。
srand()函数
srand()函数是生成随机数发生器的初始化函数。
#include<stdlib.h>
void srand (unsigned int seed);
参数:
seed必须是个整数,可以利用time(0)的返回值来当做seed。如果每次seed都设相同值,那么rand()所产生的随机数值会像上面的示例一每次就会一样。
举例:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(){
int i;
srand((unsigned int)time(NULL));
for (i = 0; i < 10; i++){
printf("%d ", rand() % 10);
}
printf("\n");
system("pause");
return 0;
}
运行结果:
这样的话,才能生成变化的随机数来!
如果有什么错误之处,欢迎留言指出,谢谢各位!