2015-05-31 46 views
-1

我是新來的,這個論壇對我很有幫助!不幸的是,我無法在這裏或網絡上的其他任何地方找到我的問題的答案。我希望你們中的一些人能夠就如何解決這個問題給我一些幫助或提示。從生成的隨機數列表中找出最小的數字和最大的數字

該程序將根據最大限制和將生成的隨機數量生成隨機數。

我還需要查找循環中生成的所有數字中最小的,最大的數字以及平均值。我可以使用總和/ 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

'小= UP_MAX + 1;'應該是'小= RAND_NUM;' – dasblinkenlight

回答

3

問題出在您爲LARGESMALL選取的初始值:您將它們都設置爲0,這是不正確的:您應該將它們都設置爲您生成的第一個隨機數。

或者,您可以設置SMALL最大可能int,並LARGE最小可能int。使用<limits>標題和std::numeric_limits<int>類。

注:SMALL = UP_MAX + 1;應該SMALL = RAND_NUM;

+0

謝謝!我接受了你的建議,真的很有幫助! –

相關問題