19.09.2008, 16:18
общий
это ответ
Здравствуйте!
Вот один из вариантов с использованием STL
Ввод осуществляется до ввода нуля.
Приложение:
#include <iostream>
#include <vector>
#include <numeric>
int _tmain(int argc, _TCHAR* argv[])
{
// ввод чисел, до ввода нуля
std::cout << "Input numbers, 0 for end\n";
std::vector<int> nums;
for(;;){
int inputnum;
std::cin >> inputnum;
if(!inputnum)
break; // ввели ноль - заканчиваем ввод
nums.push_back(inputnum);
}
if(nums.empty()){
std::cout << "Need any numbers\n";
return 0; // ничего не ввели
}
float avg = (float)std::accumulate(nums.begin(),nums.end(), 0) / nums.size();
std::cout
<< "Average value: " << avg << "\n"
<< "Number greater when average:\n";
std::vector<int>::const_iterator it = nums.begin();
for(; it != nums.end(); ++it)
if(*it > avg)
std::cout << *it << ", ";
}