C++ 随机数生成器只输出 2

标签 c++ random

<分区>

代码运行,但随机数生成器只输出数字 2。我输入了漏洞代码以防万一有任何我没有想到的因素。有没有更方便的方法来使用随机数生成器?

#include <windows.h>
#include <stdio.h>
#include <tchar.h>
#include <iostream>
#include <string>
#include <chrono>
#include <thread>

int Time();
int RanNum1to10();

void main() 
{
time_t now = time(0);
tm *ltm = localtime(&now);
int hour = ltm->tm_hour;
int min = 1 + ltm->tm_min;
int sec = 1 + ltm->tm_sec;
int RanNum = RanNum1to10();
std::string text;
std::getline(std::cin, text);
    {
        if(text.find("hi") != std::string::npos)
        {
            RanNum1to10();
            if (RanNum >= 1 && RanNum <= 4)
            {
                Time();
                if(hour >= 0 && hour <= 11)
                {
                    std::cout << "good morning" << std::endl;
                }
                if(hour >= 12 && hour <= 17)
                {
                    std::cout << "good afternoon" << std::endl;
                }
                if(hour >= 18 && hour <= 23)
                {
                    std::cout << "good evening" << std::endl;
                }
            }
            if (RanNum >= 5 && RanNum <= 6)
            {
                {
                    std::cout << "hey" << std::endl;
                }   
            }
            if (RanNum >= 7 && RanNum <= 8)
            {
                {
                    std::cout << "hello" << std::endl;
                }
            }
            if (RanNum >= 9 && RanNum <= 10)
            {
                {
                    std::cout << "hi" << std::endl;
                }
            }
            std::cout << RanNum;
            std::cout << std::endl;
        }
    }
system("pause");
}
int RanNum1to10()
{
    return (rand() % 10 + 1);
}
int Time()
{
    time_t now = time(0);
    tm *ltm = localtime(&now);
    int hour = ltm->tm_hour;
    int min = 1 + ltm->tm_min;
    int sec = 1 + ltm->tm_sec;
    return hour && min && sec;
}

最佳答案

在你使用 rand() 之前你需要调用

srand(time(NULL));

启动随机数生成器。

关于C++ 随机数生成器只输出 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26316157/

相关文章:

c++ - 自定义比较器(排序)作为(多) map 排序参数?

c++ - 在输入错误的密码时锁定应用程序 (c/c++)

c++ - 如何确保给定的一组点位于可能正方形的边界上?

c - 生成均匀分布的随机数

PHP:如何创建 randomDate($startDate, $endDate) 函数?

R 耗时重复功能的改进

c++ - 具有(读/写)-only 内存顺序的内存排序或读-修改-写操作

c++ - 用于计算乘数和除数值的优化算法

java:循环生成随机数

javascript - 一键单击即可用随机值填充多个输入