2015-10-16 32 views
0

初學C++的學生在這裏,第一個編程類。我正在嘗試構建一個程序,它將接受來自用戶的一組數字並輸出平均值。但是,當試圖獲得示例1的平均值時,我得到了3.5。例二我得到-0。任何幫助是極大的讚賞!C++循環輸出平均值來自一組數字小數點

示例:

輸出輸入值的平均值。

例1:你的程序的運行可能會去爲

1 2 3 4 blah 

2.5 

例2:你的程序的運行可能會去爲

blah 

no data 

#include <iostream> using namespace std; int main(){ double num; double input; double sum = 0; double avg; cout << "Please enter a set of numbers. Enter a non-number to quit: " << endl; cin >> num; while (cin >> num) // When value is not a number, quit. for(int i = 1; i <= num; i++){ cin >> input; sum += input; } avg = sum/num; cout << "average = " << avg << endl; return 0; }

回答

0

沒關係。放在一起的不同類型的循環,在這種情況下效果更好:

#include <iostream> 
#include <string> 
#include <cstdlib> // exit EXIT_FAILURE 

using namespace std; 

bool die(const string & msg); 

int main(){ 

int numToEnter; 
double sum = 0; 
double average = 0; 
double input; 

// Get numbers from the user 

cout << "Enter number of items: "; 
cin >> numToEnter || die("Input failure, only numbers allowed."); 

while ((cout << "Enter a number: ") && (cin >> input)) 

{ 

    int i = 1; 
    i <= numToEnter; 

    sum += input; 

} 

// Get average and print it 
average = sum/numToEnter; 

cout << "The average is: " << average << endl; 

return 0; 
} 

bool die(const string & msg) 

{ 
cout << "Fatal Error: " << msg << endl; 

exit(EXIT_FAILURE); 

}