2015-10-16 88 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); 

} 
相关问题