用C语言实现猜数字游戏

//猜数字游戏
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int input =1;
void menu()
{
	printf("***************************************\n");
	printf("************** 1.play *****************\n");
	printf("************** 0.play *****************\n");
}
void game()
{
	int ret=0;int input1=0;
	char just[100]="";//这里的数组空间要设的大一点,不能让他自动,因为第一个输入ok时,会自动给数组空间2字节,但当输入end时,就有三个字节,导致空间被破环,
	                  //会报Run-Time Check Failure #2 - Stack around the variable ‘just’ was corrupted.(错误原因是:栈被破坏,缓存区溢出)
	ret=rand()%100+1;
	//printf("随机数为:%d 。\n",ret);
	printf("成功进入游戏,请等待......\n");
	//for(;input1 || input1==0;)//用||(或)符号,当输入0时也能行,不会退出程序
	for(;;)
	{
	Sleep(1000);
	printf("是否继续游戏,是请输入“ok”,否则请输入“end”,请输入:");
	scanf("%s",&just);
	if(strcmp(just,"ok") == 0)
	{
	printf("请输入:");
	scanf("%d",&input1);
	if(input1>ret)
	 { 
		 printf("猜大了,请重新猜。\n");
	 }
	if(input1<ret)
	 {
		 printf("猜小了,请重新猜。\n");
	 }
	if(input1 == ret)
	 {
		 printf("恭喜猜对了!!!\n");
		 break;
	 }
	}
	if(strcmp(just,"end") == 0)
	 {
		 //input=0;
		 break;
	 }
	}
}

int main()
{
	srand((unsigned)time(NULL));//生成随机数之前。就是调用rand之前要先使用srand设置随机起点,并且用时间戳(time),调用头文件#include <time.h>
	                            //用时间戳设置随机起点,计算机的时间起点为(1970.1.1.0:0:0),这个时间要无符号的,所以用unsigned,NULL为空指针,不希望产生任何的意义
	for(;input;)
	{
	menu();
	printf("请选择模式,输入1开始游戏,输入0退出游戏,其他数字需要重新输入。\n");
	printf("请输入数字:");
	scanf("%d",&input);
	switch(input)
	{
	case 1:
		game();
		break;
	case 0:
		printf("退出游戏。\n");
		break;
	default:
		printf("选择错误,请重新输入!\n");
		break;
	}
	}
return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值