C语言:猜数游戏 程序说明:游戏的开始由机器产生一个随机数(1~100之间,用库函数random()),然后游戏者在程序的提示下猜数.

首先讲下在实际编程中经常会出现的随机数.
题目上面要求的是使用库函数random()来产生随机数。
但是random()在VS/VC下是没有该库函数的,只有turbo C中有这个库函数,所以这里我们使用rand()来实现随机数.
下面是一个使用rand()来实现随机数的小例子:

#include<stdio.h>
#include<stdlib.h>
int main()
	{	
		int a = rand();
		printf("%d\n",a);
		return 0;
	}

此时生成的随机数会在0~RAND_MAX之间进行波动,而RAND_MAX是<stdlib.h>头文件中的一个宏定义,它用来指明rand()所能返回的随机数的最大值。一般这个最大值指定为32767(0x7fff)。
另外还有两种使用的形式,如果你想产生0~9的10个整数,则可以表达为:

int a = rand()%10;

如果想产生1~10的随机数,则可以表达为

int a =1 + rand()%10;

随机数的产生:
实际上在运行的时候大家也会发现这一点,如果采用上述代码进行运行的话,所产生的随机数每次都是一样的,就仿佛是固定了一样,其实单一的使用rand()函数所产生的随机数我们可以看作是伪随机数,运行了第一次之后的系统时间就是固定的了,所产生的随机数也就是固定的了,这时候就需要我们将当前系统时间作为基准,即:<time.h>这个头文件内包含的srand((unsigned int)time(NULL));来让伪随机数变成真正的随机数.

完整代码如下:

#include <stdio.h>				 				
#include <time.h>                    //给出随机数种子的头文件 
#include<stdlib.h>	                 //给出生成随机数的头文件				 	
int main()
{
{
int num,count=0;
int n;
srand((unsigned int)time(NULL));
num=(int)(rand()%100);
while(1)
{
printf("\n请输入您猜的那个数:\n");
scanf("%d",&n);
count++;
if(n==num)
{
	if(n<=7)
	{
		printf("Congratulation");
	 } 
	if(7<n<15)
	{
		printf("I can bet you can do it better.");
	}
printf("第%d次猜测,恭喜您猜对了,电脑随机数是%d!\n",count,num);
break;
}
else if(n>=num)
{
printf("第%d次猜测,抱歉您猜大了!\n",count);
}
else
{
printf("第%d次猜测,抱歉您猜小了!\n",count);
}
if(count>=15)
{
	exit(0);        //用来退出循环. 
}
}
}
return 0;
}

猜你喜欢

转载自blog.csdn.net/RViewSonic/article/details/107136804