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

时间:2015-05-31 01:16:40

标签: c++

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

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

我还需要找到最小的,最大的数字,以及循环中生成的所有数字的平均值。我可以使用sum / MAX_COUNT_NUM找到平均值。不幸的是,我找不到最小和最大的数字。在过去的6个小时里一直在这。无论如何,请帮助你。谢谢。

#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,这让我头疼。

我正在参加初学者课程,这让我很难过,所以我的思维方式可能会被打败。如果您可以提供任何其他提示,我非常感谢。

1 个答案:

答案 0 :(得分:3)

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

或者,您可以将SMALL设置为最大可能int,将LARGE设置为最小可能{{1} }}。使用int标题和std::numeric_limits<int>类。

注意: <limits>应为SMALL = UP_MAX + 1;