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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
vonorf
6 / 6 / 1
Регистрация: 05.10.2009
Сообщений: 31
#1

Найти порядковый номер массива, среднее арифметическое значение элементов которого максимально - C++

24.10.2009, 19:10. Просмотров 985. Ответов 18
Метки нет (Все метки)

дана задача, совсем запутался уже, помогите пожалуйста:

Написать функцию, получающую в качестве параметров два массива целого типа произвольного размера и возвращающую порядковый номер массива, среднее арифметическое значение элементов которого максимально.

В главной программе описать три массива целого типа: А раз мерностью 5*6, В размерностью 4*4 и С размерностью 3*4.

Массивы А и В инициализировать при описании, а массив С ввести с клавиатуры. С помощью разработанной функции определить и вывести на экран имя массива, имеющего наибольшее сред нее арифметическое значение элементов.


Может изначально неправильно задаю функцию? Где мне сравнивать массивы и как? Инициализцация при описании, что это значит? Изначально сказано, что функция получает в качестве параметров 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
34
35
36
37
38
39
40
41
42
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <conio.h>
using namespace std;
int f(int A[5][6], int B[4][4], int C[3][4])
{
    int S,i,j;
    for(int i=0; i<5; i++)
    {
        for(int j=0; j<6; j++)
        {
            int S=S+(j+i)/(j*i);
                return S;
        }
    }
}
int main()
{
    int A[5][6]; 
    int B[4][4];
    int C[3][4];
    for (int i=0; i<3; i++)
    {
        for(int j=0; j<4; j++)
        {
            cout<<"C["<<i<<"]["<<j<<"]= "; 
            cin>>C[i][j];
        }
    }
    f(A, B, C);
    for(int i=0; i<5; i++)
    {
        cout<<"[ ";
        for(int j=0; j<6; j++)
        {
            cout<<f(A,B,C)<<" ";
        }
        cout<<"]\n";
    }
    return 0;
}
Задача конечно не дописана и с ошибками, помогите, пожалуйста, все исправить
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2009, 19:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти порядковый номер массива, среднее арифметическое значение элементов которого максимально (C++):

Вывести порядковый номер последнего из элементов массива значение которого принадлежит заданному интервалу - C++
Дан целочисленный массив A размера 10. Вывести порядковый номер последнего из тех его элементов AK, которые удовлетворяют двойному...

Матрицы. Определить индекс стобца, среднее арифметическое элементов которого максимально - C++
Дана прямогульная матрица b. Определить индекс стобца. среднее арифметическое жлементов которого максимально. Если таких столбцов...

Определить индекс столбца матрицы, среднее арифметическое элементов которого максимально - C++
Дана прямоугольная матрица b. Определить индекс столбца, среднее арифметическое элементов которого максимально. Если таких столбцов...

Найти среднее арифметическое значение четных элементов и среднее арифметическое нечетных элементов и сравнить их между собой - C++
Найти среднее арифметическое значение четных элементов и среднее арифметическое нечетных элементов и сравнить их между собой. Вот часть...

Найти среднее арифметическое значение элементов массива - C++
#include &lt;iostream&gt; using namespace std; int shet(int *m, int n) { int x,sum=0; cout&lt;&lt;&quot;vvedite elementi:&quot;&lt;&lt;endl; for(int...

Найти среднее арифметическое значение элементов заданного массива - C++
помогите пожалуйста написать код: Найти среднее арифметическое значение элементов заданного массива. Преобразовать исходный массив,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
niXman
Эксперт C++
3134 / 1446 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
24.10.2009, 19:15 #2
vonorf, Я так понимаю, нужно на С++ ?
vonorf
6 / 6 / 1
Регистрация: 05.10.2009
Сообщений: 31
24.10.2009, 19:19  [ТС] #3
Да, C++ на Visual Studio 2008 все пишу
niXman
Эксперт C++
3134 / 1446 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
24.10.2009, 20:06 #4
Цитата Сообщение от vonorf Посмотреть сообщение
Написать функцию, получающую в качестве параметров два массива целого типа произвольного размера и возвращающую порядковый номер массива, среднее арифметическое значение элементов которого максимально.
Вот:
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
struct fill_functor {
    void operator() (std::vector<int>& v) {
        std::generate(v.begin(), v.end(), rand);
    }
};
 
struct count_functor {
    count_functor():count(0) {}
    void operator() (const std::vector<int>& v) {
        count += std::accumulate(v.begin(), v.end(), 0);
    }
    unsigned int count;
};
 
int what_max(const std::vector<std::vector<int>>& arr1, const std::vector<std::vector<int>>& arr2) {
    /** подсчитываем среднее арифметическое первого массива */
    count_functor result1 = std::for_each(arr1.begin(), arr1.end(), count_functor());
    /** подсчитываем среднее арифметическое второго массива */
    count_functor result2 = std::for_each(arr2.begin(), arr2.end(), count_functor());
    
    return (result1.count < result2.count);
}
 
int main(int argc, const char** argv)  {
    const int size = 8;
    /** декларируем квадратный двумерный массив */
    std::vector<std::vector<int> > array1(size);
    std::vector<std::vector<int> > array2(size);
    
    /** перемеряем столбцы первого массива */
    std::for_each(array1.begin(), array1.end(),
                        std::bind2nd(
                                            std::mem_fun_ref(&std::vector<int>::resize), array1.size()
                                        )
                    );
    /** перемеряем столбцы второго массива */
    std::for_each(array2.begin(), array2.end(),
                        std::bind2nd(
                                            std::mem_fun_ref(&std::vector<int>::resize), array2.size()
                                        )
                    );
    
    /** заполняем случайными значениями */
    std::for_each(array1.begin(), array1.end(), fill_functor());
    std::for_each(array2.begin(), array2.end(), fill_functor());
    
    int max = what_max(array1, array2);
    
    return 0;
}
Тут много кода по подготовке массивов. Вам нужна функция what_max(array1, array2) и функтор struct count_functor
vonorf
6 / 6 / 1
Регистрация: 05.10.2009
Сообщений: 31
24.10.2009, 20:08  [ТС] #5
спасибо, но компилятор 84 ошибки выдал)
niXman
Эксперт C++
3134 / 1446 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
24.10.2009, 20:09 #6
Цитата Сообщение от vonorf Посмотреть сообщение
спасибо, но компилятор 84 ошибки выдал)

А хидеры подключили?
C++
1
2
3
4
5
#include <vector>
#include <algorithm>
#include <iostream>
#include <functional>
#include <numeric>
vonorf
6 / 6 / 1
Регистрация: 05.10.2009
Сообщений: 31
24.10.2009, 20:12  [ТС] #7
подключил да не те)

Добавлено через 1 минуту
программа запускается и сразу предлагает выйти
niXman
Эксперт C++
3134 / 1446 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
24.10.2009, 20:14 #8
Цитата Сообщение от vonorf Посмотреть сообщение
программа запускается и сразу предлагает выйти
Ну естественно.

Добавь перед return 0;
C++
1
2
std::cout << max << std::endl << "Enter for exit" << std::endl;
std::cin >> max;
vonorf
6 / 6 / 1
Регистрация: 05.10.2009
Сообщений: 31
24.10.2009, 20:16  [ТС] #9
Тоесть ответ просто 1?? Как же ручной ввод массива С?
niXman
Эксперт C++
3134 / 1446 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
24.10.2009, 20:17 #10
Если сумма первой матрицы, больше суммы второй, выведет 0, иначе 1.
vonorf
6 / 6 / 1
Регистрация: 05.10.2009
Сообщений: 31
24.10.2009, 20:19  [ТС] #11
Я просто в данном коде хуже намного соображаю, такое нам не показывали в универе
niXman
Эксперт C++
3134 / 1446 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
24.10.2009, 20:20 #12
Цитата Сообщение от vonorf Посмотреть сообщение
Я просто в данном коде хуже намного соображаю, такое нам не показывали в универе
Я тебя спросил, "На С++ ?", ты ответил ДА. Это он и есть.

п.с.
спасибо бы сказал чтоли...
vonorf
6 / 6 / 1
Регистрация: 05.10.2009
Сообщений: 31
24.10.2009, 20:23  [ТС] #13
просто вот видешь как я сначало написал в первом сообщении? Вот такое и показывали))) спасибо ща расставлю на все ответы.
niXman
Эксперт C++
3134 / 1446 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
24.10.2009, 20:27 #14
Цитата Сообщение от vonorf Посмотреть сообщение
просто вот видешь как я сначало написал в первом сообщении?
С утра напишу в таком стиле(надеюсь меня не застыдят)
vonorf
6 / 6 / 1
Регистрация: 05.10.2009
Сообщений: 31
24.10.2009, 20:32  [ТС] #15
Препод офигеет от написанного Когда я его спросил как сделать так, чтобы написав слово exit программа завершилась, он ответил на это, что такое невозможно. Думаю в такой ситуации не застыдят. Давно понял что ТАМ меня ничему не научат, потихоньку, насколько хватает времени читаю книги по C/C++, и топики на этом форуме. Надеюсь путь правильный. Огромное тебе еще раз спасибо за проявленную помощь, а если еще и хватит смелости написать в том стиле, что я предложил цены тебе не будет
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.10.2009, 20:32
Привет! Вот еще темы с ответами:

Найти среднее арифметическое значение положительных элементов массива - C++
Задан массив A(n),найти среднее арифметическое значение положительных элементов массива.

Найти среднее арифметическое значение положительных и отрицательных элементов массива - C++
Задание 2 (его или третье) Дан Массив Xi, i = 1, ..., 15. Найти среднее арифметическое значение положительных и отрицательных элементов...

Функция: получить две матрицы и вернуть номер матрицы, среднее арифметическое элементов которой максимально - C++
нужна помощь в этой задаче!!! Написать функцию, получающую в качестве параметров два массива целого типа произвольного размера и...

Найти среднее арифметическое всех элементов массива, имеющих нечётное значение - C++
2) Дан целочисленный массив из 30 элементов. Элементы массива могут принимать значения от 0 до 1000. Найдите и выводите среднее...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
24.10.2009, 20:32
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru