Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно
pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


Я бы посоветовал воспользоваться алгоритмами (писанины меньше и понятней)
Код: Выделить весь код
#include <stdexcept>
#include <algorithm>
#include <iostream>
#include <iomanip>
#include <vector>
using namespace std;

// must be declared 
class doSmth_divMax {
    double max;
public:
    doSmth_divMax(const double& d) : max(d)
   {
   }
    void operator()(double& d) const
   {
         d = max/d;
   }
};

void doSmth(vector<double>& vd)
{
    vector<double>::iterator imax = max_element(vd.begin(), vd.end());

    if (vd.end()!=imax) {
        for_each(vd.begin(), vd.end(), doSmth_divMax(*imax));
        return;
    }

    throw logic_error("there is no maximum here");
}
мне кажется, что в фразе
Цитата:
и поделить его на все остальные
кроится какая-то ошибка. Если так, то программа будет ещё проще.

Отправлено: 11:08, 09-03-2005 | #3