从生成的随机数列表中找出最小和最大的数

Finding the smallest number and largest number from a list of random numbers generated

本文关键字:随机数 列表      更新时间:2023-10-16

我是新来的,这个论坛给了我很大的帮助!不幸的是,我无法找到我的问题的答案在这里或其他任何地方在网络上。我希望你们中的一些人能给我一些帮助或提示,关于如何做到这一点。

程序将根据最大限制和将生成的随机数的数量生成随机数。

我还需要找到最小,最大的数字,以及循环中生成的所有数字的平均值。我可以使用sum/MAX_COUNT_NUM找到平均值。不幸的是,我一直在寻找最小和最大的数字。我已经忙了六个小时了。请尽你所能帮助我。谢谢你!

#include <iostream>
#include <cmath>
#include <stdlib.h>
#include <iomanip>
using namespace std;
int main(){
int UP_MAX, MAX_COUNT_NUM, RAND_NUM, MIN_COUNT_NUM;

cout << "This program creates random numbers" << "n" << "n";
cout << "Enter the upper limit of all generated random numbers: ";
cin >> UP_MAX;
cout << "n" << "n";
cout << "Enter the count of random numbers: ";
cin >> MAX_COUNT_NUM;
cout << "n" << "n";
cout << "Creating " << MAX_COUNT_NUM << " random numbers from 1 to " << UP_MAX << ": " << "n" << "n";
MIN_COUNT_NUM = 1;
int LARGE = 0;
int SMALL = 0;
for (; MAX_COUNT_NUM >= MIN_COUNT_NUM; MIN_COUNT_NUM++)
{
    RAND_NUM = rand() % UP_MAX + 1;
    cout << setw(8) << RAND_NUM;
    if (RAND_NUM < SMALL)
    {
        SMALL = UP_MAX + 1;
    }
    if (RAND_NUM > LARGE)
    {
        LARGE = RAND_NUM;
    }
}

不幸的是,我需要在没有数组和向量的情况下这样做。在我的脑海里,我认为它也应该起作用,但它没有。最大的数字出来很好,但最小的数字出来的结果是0,这让我摸不着头脑。

我正在上一门初学者课程,这把我难住了,所以我的思维方式可能是不正常的。如果你能提供任何其他的建议,我绝对感激。

问题是您为LARGESMALL选择的初始值:您将它们都设置为0,这是不正确的:您应该将它们都设置为您生成的第一个随机数。

也可以设置SMALL最大可能的int, LARGE最小可能的int。使用<limits>头和std::numeric_limits<int>

注意: SMALL = UP_MAX + 1;应该SMALL = RAND_NUM;