2014-01-23 233 views
-3

關於方案

程序應該產生來自供給用戶輸入(初始值和最大值)編號,以產生數爲那些值中的一個列表。一旦完成,程序需要顯示所有顯示的數字之間的平均值。找到平均值(平均)在C++

我的代碼

#include <iostream> 

int main(void) 
{ 
    unsigned int INITIAL_VALUE; 
    unsigned int MAX_VALUE; 

    std::cout << "\n\n\nStarting value: "; 
    std::cin >> INITIAL_VALUE; 
    std::cout << "\nValue to count to: "; 
    std::cin >> MAX_VALUE; 

    std::cout << "\n"; 

    while(INITIAL_VALUE <= MAX_VALUE) 
    { 
     ++INITIAL_VALUE; 
     std::cout << INITIAL_VALUE << ", "; 
    } 

    // Code to output the average goes here 

    std::cin.get(); 
    std::cin.get(); 
} 

我,當然,做出了嘗試解決這個問題,但我甚至不能換我的頭周圍的解釋。我知道的意思是(平均)的數字,只需將所有數字相加,然後除以數字的數量;然而,我想不出一種將這樣一個簡單的公式轉換成C++語法的方法。一個徹底的解釋將非常感謝,並提前感謝大家。

+1

讓我們先考慮在C++中添加兩個數字。你知道你會怎麼做並存儲結果? – YXD

+0

您需要跟蹤2條數據(除實際數字外):運行總數(總數)和數據點數。 –

+0

這不是一項家庭作業,但是我只需要兩個數字,然後將它們分配給一個變量。 – Jake2k13

回答

0
#include <iostream> 

int main(void) 
{ 
    unsigned int INITIAL_VALUE; 
    unsigned int MAX_VALUE; 
    unsigned int sum = 0; 
    unsigned int count; 
    double average; 

    std::cout << "\n\n\nStarting value: "; 
    std::cin >> INITIAL_VALUE; 
    std::cout << "\nValue to count to: "; 
    std::cin >> MAX_VALUE; 

    std::cout << "\n"; 
    count = MAX_VALUE - INITIAL_VALUE + 1; 

    while(INITIAL_VALUE <= MAX_VALUE) 
    { 
     sum += INITIAL_VALUE; 
     ++INITIAL_VALUE; 
     std::cout << INITIAL_VALUE << ", "; 
    } 

    // Code to output the average goes here 
    average = 1.0 * sum/count; 

    std::cin.get(); 
    std::cin.get(); 
} 
+0

我知道如何寫入,但我不明白如何計算所有數字。 – Jake2k13

+0

'sum + = INITIAL_VALUE;'程序將值從'INITIAL_VALUE'加到'MAX_VALUE' – Charles0429

0

你做錯了什麼是你沒有跟蹤所有值的總和。然後你可以將它除以值的數量來得到平均值。所以while循環部分應該像

double sum = 0.0; 
int n = MAX_VALUE - INITIAL_VALUE + 1; 
while(INITIAL_VALUE <= MAX_VALUE) 
{ 
    sum += INITIAL_VALUE; 
    ++INITIAL_VALUE; 
    std::cout << INITIAL_VALUE << ", "; 
} 

double average = sum/n;