猜数字游戏(运用随机数)

实训报告
要求在开头输出欢迎词,直接用printf输出即可;
由于是多次游戏,最后要判断是否再一次游戏,这里无疑问是需要运用循环的,所以我们可以借用do while结构,先进行一次程序;
玩猜数字游戏关键就是随机数的生成,而且需要每次都不相同,就需要设置随机数种子srand((unsigned)time( NULL ) );,不过为了防止随机数每次重复,常常使用系统时间来初始化,即使用 time函数来获得系统时间;
如果不加入time函数就会出现重复:
在这里插入图片描述
在do while循环里在加入一个循环(可以调用函数写)来判断猜数并输出提示就可完成题目;

rand()%100;产生0-99的随机数。
高级点的,假如要产生16-59之间的数,
你可以这样写:rand()%44+16(这里44由59-16+1得到)。其他情况如法炮制!

#include "stdio.h"
#include "stdlib.h"
#include"time.h"
#define random()(rand()%x)
void guesstime(int,int);
void main()
{
	char x;
	int no,guessNo,i=0,guess;
	
    printf("*****************************\n");
    printf("*欢迎来玩猜数游戏,祝你好运!*\n");
    printf("*****************************\n");
    do
    {
    printf("请先设置猜数的范围0-?请输入一个整数:\n");
    srand((int)time(0)); 
    scanf("%d",&no);
    guessNo=rand()%no;
    guesstime(guessNo,no);
    printf("您还要再玩一次吗?\n玩请输入Y,否则输入N \n");
    getchar();
    scanf("%c",&x);
    printf(" ");
    if(x=='N'){printf("游戏结束!\n");break;}
    }while(x=='Y');
    
}
void guesstime(int guessNo,int no)
{
	int guess,i=0;
while(1)
    {
    printf("请输入你猜这个0-%d的数是多少?\n",no);
    scanf("%d",&guess);
    if(guess<guessNo)printf("你猜的小了,请再猜\n");
    if(guess>guessNo)printf("你猜的大了,请再猜\n");
    i++;
    if(guess==guessNo)
    { 
    	printf("恭喜您,您猜对了");
    	printf("正确数值为%d\n",guessNo);
    	printf("您一共猜测%d次\n",i);    	
    	break;
    }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值