博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何产生一个随机数,在两个随机数之间。
阅读量:5836 次
发布时间:2019-06-18

本文共 847 字,大约阅读时间需要 2 分钟。

hot3.png

如何让电脑较为快的,不重复的猜到1-100直接的一个随机数。

以c语言为例,例如在猜1-100的数字时,假如,随机产生一个数字number=rand()%100+1,那么如果随机猜的第一个数字大于了number,我们就把这个数存到end里面,如果随机猜的第二个数字小于了number,我们就把这个数字存到first里面,那么问题就是接下来产生的随机数要在介于first和end之间的一个随机数,则,用rand()%(end-first)+first可以得到这个随机数。

以下为示例代码:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int func(int first,int end)
{
    return rand()%(end-first) +first+1;
}
int main(void)
{
    srand(time(NULL));
    int num_1=rand()%100+1;
    //int num_2;
    int count=0;
    int first=0;
    int end=100;
    printf("需要猜的数字为:%d\n",num_1);
    while(1)
    {
        printf("请你猜一个数:\n");
        int num_2=func(first,end);
        printf("%d",num_2);
        if(num_2>num_1)
        {
            printf("你输入的数大了!\n");
            end=num_2;
            count++;
        }
        else if(num_2<num_1)
        {
            printf("你输入的数小了!\n");
            first=num_2;
            count++;
        }
        else
        {
            printf("恭喜你答对了哦!\n");break;
        }
    }
    printf("你一共用了%d次哦",count);
    return 0;
}

转载于:https://my.oschina.net/u/1400666/blog/177801

你可能感兴趣的文章
[LeetCode] Palindrome Linked List 回文链表
查看>>
UVA - 825Walking on the Safe Side(dp)
查看>>
android大概是通过logcat拦截Log
查看>>
android HDMI 清晰度 分辨率
查看>>
JQuery发送Put、Delete请求 - 摘自网络
查看>>
Android基于mAppWidget实现手绘地图(九)–如何处理地图对象的touch事件
查看>>
关于codeMirror插件使用的一个坑
查看>>
矩阵管理——本质是职能分工,例如所有部门都执行财务部门制定的财务制度而不会各自为政...
查看>>
评论:人才流失强力折射出现实畸形人才观
查看>>
git服务器gitlab之搭建和使用--灰常好的git服务器【转】
查看>>
Game Loop Tutorial
查看>>
Android开发之旅:应用程序基础及组件(续)
查看>>
jQuery validate API
查看>>
基于机器学习的web异常检测——基于HMM的状态序列建模,将原始数据转化为状态机表示,然后求解概率判断异常与否...
查看>>
分享一种需求评审的方案
查看>>
Java中需要注意的一些案例
查看>>
拍照应用Snow被吐槽抄袭Snapchat,对比下就知道了
查看>>
虚拟运营商10月或大面积放号 哭穷背后仍有赢家
查看>>
Server2016开发环境配置
查看>>
让人烦躁的“机房空调噪音”该怎么解决?
查看>>