C++随机数发生器只输出2
C++ Random number generator only outputting 2
代码运行,但随机数生成器仅输出数字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++ 中的输入和输出?
- 请解释"函数1(p1,p2,p3);"的输出
- C++:将控制台输出存储在宏中更好吗
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 为什么我的代码在输出中增加了93天
- 如何从void函数输出字符串
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- AES加密到解密未正确输出
- 如何将c++程序的一些输出传递给shell,以便在shell中使用
- 使用C++程序合并排序没有得到正确的输出
- 为什么我不能在不创建字符串变量的情况下使用函数的字符串输出
- C++格式化输出问题
- 将值从二维数组输出到文本文件
- 集合上的输出迭代器:assign和increment迭代器
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- 为什么rk4.do_step不输出C++中的初始条件
- 输出没有重复元素的动态数组(收缩数组)C++
- C++随机数发生器只输出2