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

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

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

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

24.10.2009, 19:10. Просмотров 963. Ответов 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++ Найти среднее арифметическое значение элементов массива
C++ Определить номер подматрицы, среднее арифметическое элементов которой имеет наибольшее значение.
C++ Матрицы. Определить индекс стобца, среднее арифметическое элементов которого максимально
Найти среднее арифметическое значение элементов заданного массива C++
C++ Сформировать массив каждый элемент которого это среднее арифметическое элементов исходного массива
Найти среднее арифметическое значение положительных и отрицательных элементов массива 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++, и топики на этом форуме. Надеюсь путь правильный. Огромное тебе еще раз спасибо за проявленную помощь, а если еще и хватит смелости написать в том стиле, что я предложил цены тебе не будет
niXman
Эксперт C++
3134 / 1446 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
24.10.2009, 20:34     Найти порядковый номер массива, среднее арифметическое значение элементов которого максимально #16
Цитата Сообщение от vonorf Посмотреть сообщение
Думаю в такой ситуации не застыдят
В смысле, обитатели форума
vonorf
6 / 6 / 1
Регистрация: 05.10.2009
Сообщений: 31
24.10.2009, 20:34  [ТС]     Найти порядковый номер массива, среднее арифметическое значение элементов которого максимально #17
Я так и понял)
niXman
Эксперт C++
3134 / 1446 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
25.10.2009, 16:26     Найти порядковый номер массива, среднее арифметическое значение элементов которого максимально #18
Как и обещал.
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
#include <stdio.h>
 
const int x = 8;
const int y = 8;
 
int what_max(int a[x][y], int b[x][y]) {
    unsigned int summ_a = 0;
    unsigned int summ_b = 0;
    
    for ( int i = 0; i < x; i++) {
        for ( int j = 0; j < y; j++ ) {
            summ_a += a[i][j];
        }
    }
    for ( int i = 0; i < x; i++) {
        for ( int j = 0; j < y; j++ ) {
            summ_b += b[i][j];
        }
    }
    
    return (summ_a > summ_b);
}
 
int main(int argc, const char** argv) {
    int a[x][y] = {0};
    int b[x][y] = {0};
    
    for ( int idx = 0; idx < x*y; idx++ ) {
        ((int*)a)[idx] = rand();
        ((int*)b)[idx] = rand();
    }
    
    int result = what_max(a, b)+1;
    printf("matrix %d\n", result);
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2009, 16:48     Найти порядковый номер массива, среднее арифметическое значение элементов которого максимально
Еще ссылки по теме:

Найти среднее арифметическое значение массива C++
Определить индекс столбца матрицы, среднее арифметическое элементов которого максимально C++
C++ Вывести порядковый номер последнего из элементов массива значение которого принадлежит заданному интервалу
Найти максимум из положительных элементов массива и его порядковый номер (номера) C++
C++ Найти среднее арифметическое всех элементов массива, имеющих нечётное значение

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

Или воспользуйтесь поиском по форуму:
vonorf
6 / 6 / 1
Регистрация: 05.10.2009
Сообщений: 31
25.10.2009, 16:48  [ТС]     Найти порядковый номер массива, среднее арифметическое значение элементов которого максимально #19
Огромное спасибо
Yandex
Объявления
25.10.2009, 16:48     Найти порядковый номер массива, среднее арифметическое значение элементов которого максимально
Ответ Создать тему
Опции темы

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