我是新来的,这个论坛给了我很大的帮助!不幸的是,我无法在这里或网络上的任何其他地方找到我的问题的答案。我希望你们中的一些人可以给我一些帮助或提示如何解决这个问题。
程序将根据最大限制和将生成的随机数量生成随机数。
我还需要找到最小的,最大的数字,以及循环中生成的所有数字的平均值。我可以使用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,这让我头疼。
我正在参加初学者课程,这让我很难过,所以我的思维方式可能会被打败。如果您可以提供任何其他提示,我非常感谢。
答案 0 :(得分:3)
问题在于您为LARGE
和SMALL
选择的初始值:您将它们都设置为0
,这是不正确的:您应该将它们都设置为第一个值你生成的随机数。
或者,您可以将SMALL
设置为最大可能int
,将LARGE
设置为最小可能{{1} }}。使用int
标题和std::numeric_limits<int>
类。
注意: <limits>
应为SMALL = UP_MAX + 1;