1

Тема: чому виводиться 013В1307 ? звідки воно береться?

*DRINK*
Задача:
Використовуючи алгоритм for_each та функціональні об’єкти розв’язати задачу: всі
елементи контейнера, що є числами Фібоначі помножити на найменше число з
контейнера.
Я це зробив,  але в додаток до чисел Фібоначі які мали виводитися добавляється  013В1307. Що це? Це щось типу адреса пустого місця чи як? Допоможіть будь ласка.

#include <iostream>
#include <algorithm>
#include <vector>
#include <iterator>
#include <exception>
using namespace std;

double minimum = 0;

void print(vector<double> v)
{
    for (auto it:v)
    {
        cout << it << " ";
    }
    cout << endl;
};

void fibonachi(double x)
{
    int n1 = 1;
    int n2 = 1;
    int f = 0;
    while (f <=x)
    {
        f = n1 + n2;
        if (f == x)
        {
            cout <<  f * minimum << " ";
        }
        n1 = n2;
        n2 = f;
    }
};

void main()
{
    vector<double> v;
    v.push_back(2);
    v.push_back(3);
    v.push_back(4);
    v.push_back(12);
    v.push_back(21);
    v.push_back(34);
    v.push_back(77);
    print(v);
    minimum = v.at(0);
    for (auto it = v.begin(); it < v.end(); it++)
    {
        if (*it < minimum)
            minimum = *it;
    }

    cout << "Fibonacci numbers multiplied by the minimum  of the container:"<<endl;
    cout<< for_each(v.begin(), v.end(), fibonachi);

    cout << endl;
    system("pause");
}

2 Востаннє редагувалося Itari (04.11.2015 16:01:34)

Re: чому виводиться 013В1307 ? звідки воно береться?

cout<< for_each(v.begin(), v.end(), fibonachi);

Навіщо ти написав тут cout<< ?
цим ти виводиш також і адрес самої функції for_each у ПЗ.

Убери його. Викликай for_each() як процедуру а не функцію:

cout << "Fibonacci numbers multiplied by the minimum  of the container:"<<endl;
    for_each(v.begin(), v.end(), fibonachi);
 
    cout << endl;
    system("pause");