用C写的猜数字游戏! o(* ̄▽ ̄*)ブ

一个简易的猜数字小游戏

人机对战
用到的仍然是通过srand函数提供的时间种子,rand获得随机数
电脑的随机数生成是1到10

那么在下面再简单说一下srand()与rand():

rand函数在产生随机数前,需要系统提供的生成伪随机数序列的种子,rand根据这个种子的值产生一系列随机数。如果系统提供的种子没有变化,每次调用rand函数生成的伪随机数序列都是一样的。srand(unsigned seed)通过参数seed改变系统提供的种子值,从而可以使得每次调用rand函数生成的伪随机数序列不同,从而实现真正意义上的“随机”。通常可以利用系统时间来改变系统的种子值,即srand(time(NULL)),可以为rand函数提供不同的种子值,进而产生不同的随机数序列。

OK,话不多说上代码:

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<time.h>
int main(void)
{
	int number,num;
	int start,end;   //统计时间
	int point=0;     //计得分
	char choice;
	start=clock();
	while(1)
	{
		srand(time(0));
		num=rand()%10+1;
		while(1)
		{
			printf("请输入您的数字:\n");
		    scanf("%d",&number);
		    if(number<1||number>10)
		    {
			    printf("请输入1到10之间的任一一个整数\n");
				continue;
		    }
		    if(number<num)
		    {
			    printf("您的数字小于电脑给出的数字\n");
		    }
		    if(number>num)
		    {
			    printf("您的数字大于电脑给出的数字\n");
		    }
		    if(number==num)
		    {
			    printf("猜对啦!\n");
				point=point+10;
			    system("pause");
				break;
			}
		}
		printf("是否继续?(Y/N)\n");
		scanf(" %c",&choice);
		if(choice=='n'||choice=='N')
		{
			break;
		}
	}
	end=clock();
	printf("您一共得分是%d分\n",point);
	printf("您一共用时%d秒\n",(end-start)/1000);
	system("pause");
	return 0;
}

注意srand函数的位置,不能放在第二个while循环中,否则会随着时间一直更改电脑给出的数从而破坏规则。
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值