Форум программистов, компьютерный форум CyberForum.ru

написать функцию в С++ - C++

Восстановить пароль Регистрация
 
Evghenii.88
0 / 0 / 0
Регистрация: 20.05.2010
Сообщений: 7
21.05.2010, 00:55     написать функцию в С++ #1
Надо написать функцию которая выводит из вектора числа ,которые меньше чем средняя арифметическая максимума и минимума.
длину вектора определяем сами числа тоже.
Тоесть надо найти среднюю арифмитическу наибольшего и наименьшего числа в векторе, сравнить с каждым числом в этом векторе и если это число меньше чем средняя арифм то вывести его.

П.С. Заранее большое спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2010, 00:55     написать функцию в С++
Посмотрите здесь:

C++ Написать функцию, которая могла бы передать значение в другую функцию
C++ Написать функцию
C++ Написать функцию, которая вычисляет объем и площадь поверхности параллелепипеда, описать функцию IsSquare(K)
не могу разобраться как написать функцию сортировки и исправить функцию добавления в стек C++
Написать функцию, которая возвращает максимальное из двух чисел, которые переданы в функцию в качестве параметров C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gh05t
47 / 46 / 4
Регистрация: 03.04.2010
Сообщений: 99
21.05.2010, 04:45     написать функцию в С++ #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
 
using namespace std;
 
int main()
{
    int N;
    cin >> N;
    int matrix[1000], max, min;
 
    for (int i = 0; i < N; i++)
    {
        cin >> matrix[i];
        if (i==0)
            max = matrix[i];
        else
            if (max < matrix[i])
                max = matrix[i];
        if (i==0)
            min = matrix[i];
        else
            if (min > matrix[i])
                min = matrix[i];
    }
 
    float mid = (max + min)/2;
 
    for (int i = 0; i < N; i++)
        if (matrix[i] < mid)
            cout << matrix[i] << endl;
 
    return 0;
}
Evghenii.88
0 / 0 / 0
Регистрация: 20.05.2010
Сообщений: 7
21.05.2010, 09:28  [ТС]     написать функцию в С++ #3
Спасибо конечно большое но надо именно Фнукцию
gh05t
47 / 46 / 4
Регистрация: 03.04.2010
Сообщений: 99
21.05.2010, 10:37     написать функцию в С++ #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
 
using namespace std;
 
void func (int * matrix, int N)
{
    int max, min;
 
    for (int i = 0; i < N; i++)
    {
        if (i==0)
            max = matrix[i];
        else
            if (max < matrix[i])
                max = matrix[i];
        if (i==0)
            min = matrix[i];
        else
            if (min > matrix[i])
                min = matrix[i];
    }
    float mid = (max + min)/2;
 
    for (int i = 0; i < N; i++)
        if (matrix[i] < mid)
            cout << matrix[i] << endl;
}
 
int main()
{
        int N;
        cin >> N;
        int matrix[1000];
 
        for (int i = 0; i < N; i++)
            cin >> matrix[i];
 
        func((int *)&matrix, N);
 
        return 0;
}
Mr.X
Эксперт С++
 Аватар для Mr.X
2801 / 1577 / 247
Регистрация: 03.05.2010
Сообщений: 3,664
21.05.2010, 13:06     написать функцию в С++ #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
//Написать функцию, которая выводит из вектора числа, которые меньше, 
//чем средняя арифметическая максимума и минимума.
#include <vector>
#include <algorithm>
#include <ctime>
#include <cstdlib>
#include <functional>
#include <iostream>
#include <locale>
 
const size_t ARR_SIZE = 20;
 
typedef std::vector<int> T_int_arr;
 
int get_rand()
{
    const size_t ARR_VAL_PERIOD  = 100;
    return rand() % ARR_VAL_PERIOD;
}
 
void print_nums_less_aver_max_min(const T_int_arr&  a)
 
{
    double min_elem = *std::min_element(a.begin(), a.end());
    double max_elem = *std::max_element(a.begin(), a.end());
    double aver_min_max = (min_elem + max_elem) / 2.0;
    T_int_arr  temp_arr(a);
    T_int_arr::iterator  new_temp_arr_end 
        = std::remove_copy_if
              (
                  a.begin(), a.end(), 
                  temp_arr.begin(), 
                  std::bind2nd(std::greater_equal<double>(), aver_min_max)
              );
    std::cout << std::endl
              << "min = "                    << min_elem     << std::endl
              << "max = "                    << max_elem     << std::endl
              << "сред. арифм. min и max = " << aver_min_max << std::endl;
 
    std::cout << "Числа вектора, которые меньше средней арифметической "              
              << "его максимума и минимума: "
              << std::endl;
 
    std::copy(temp_arr.begin(), new_temp_arr_end,               
              std::ostream_iterator<int>(std::cout, " "));
}
 
int main()
{
    std::locale::global(std::locale("rus"));
 
    //Создаем вектор нужного размера.
    T_int_arr v(ARR_SIZE);    
 
    //Заполняем его случайными числами.
    srand(static_cast<unsigned>(time(0)));
    std::generate(v.begin(), v.end(), get_rand);
 
    //Выводим его на консоль.
    std::cout << "Исходный вектор: "             
              << std::endl;
    std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
 
    //Выводим на консоль числа вектора, которые меньше средней арифметической
    //его максимума и минимума.
    print_nums_less_aver_max_min(v);
    std::cout << std::endl;   
    return 0;
}
Evghenii.88
0 / 0 / 0
Регистрация: 20.05.2010
Сообщений: 7
21.05.2010, 15:48  [ТС]     написать функцию в С++ #6
gh05t
выдаёт ошибку : Namespace name expected
может у меня с компилятором что-то не то? Borland C++ 5.02

Добавлено через 40 минут
gh05t Cпасибо большое очень помог!
Yandex
Объявления
21.05.2010, 15:48     написать функцию в С++
Ответ Создать тему
Опции темы

Текущее время: 15:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru