0 / 0 / 1
Регистрация: 03.09.2014
Сообщений: 87

Подсчитать среднее арифметическое элементов каждого столбца матрицы и ввести все это в одномерный массив

03.09.2014, 21:21. Показов 7483. Ответов 39
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть уже отсортированный двумерный массив NxM.
Нужно подсчитать средн.арифмет. элементов каждого столбца и ввести все это в массив B.
Пример:
A =
1 2 3
4 5 6

B =
2.5 5 4.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
# include <algorithm>
#include <iostream>
using namespace std;
int main()
{
    setlocale(LC_ALL, "RUS");
    int i, j, N, M, a[20][20];
    cout << "Enter number of rows. N="; 
    cin >> N;
    cout << "Enter number of columns. M="; 
    cin >> M;
    cout << "Enter array elements: \n";
    
    for (i = 0; i < N; i++)
        
    for (j = 0; j < M; j++)
        cin >> a[i][j]; 
    
    cout << "-------------------------" << endl;
    cout << "Your array A: \n";
    cout << "-------------------------" << endl;
    for (i = 0; i < N; i++)
    {
    for (j = 0; j < M; j++)
            cout << a[i][j] << "\t"; 
        cout << endl; 
    }
    sort(a[0],a[0]+M);
        cout << "-------------------------" << endl;
    cout << "Your array A: \n";
    cout << "-------------------------" << endl;
    for (i = 0; i < N; i++)
    {
    for (j = 0; j < M; j++)
            cout << a[i][j] << "\t"; 
        cout << endl; 
    }
 
    cout << "-------------------------" << endl;
 
    system("pause");
    return 0;
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.09.2014, 21:21
Ответы с готовыми решениями:

Создать одномерный массив, содержащий среднее арифметическое элементов кратных 5 для каждого столбца
Задание: 1.Дан двумерный массив целых чисел. 2.Создать одномерный массив, содержащий среднее арифметическое элементов кратных 5 для...

Найти среднее арифметическое отрицательных элементов каждого столбца матрицы (результат записать в массив)
найти среднее арифметическое отрицательных элементов каждого столбца Х(3,4). Результат записать SA(4). на языке си. спасибо за ранее

Среднее арифметическое элементов каждого столбца матрицы
Что не так? в SA выводит все элементы = 0 Задание: Найти среднее арифметическое элементов каждого столбца матрицы (3,4). Результат...

39
0 / 0 / 1
Регистрация: 03.09.2014
Сообщений: 87
03.09.2014, 23:17  [ТС]
Студворк — интернет-сервис помощи студентам
nullpointer,
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
70
71
72
73
# include <algorithm>
#include <iostream>
using namespace std;
int main()
{
    setlocale(LC_ALL, "RUS");
    int i, j, N, M, a[20][20];
    int b[50];
    for (i = 0; i < N; i++)
    {
        for (j = 0; j < M; j++)
        {
            a[i][j] = 0;
        }
        b[j] = 0.0;
    }
 
    cout << "Enter number of rows. N=";
    cin >> N;
    cout << "Enter number of columns. M=";
    cin >> M;
    cout << "Enter array elements: \n";
 
    for (i = 0; i < N; i++)
 
    for (j = 0; j < M; j++)
        cin >> a[i][j];
 
    cout << "-------------------------" << endl;
    cout << "Your array A: \n";
    cout << "-------------------------" << endl;
    for (i = 0; i < N; i++)
    {
        for (j = 0; j < M; j++)
            cout << a[i][j] << "\t";
        cout << endl;
    }
    sort(a[0], a[0] + M);
    cout << "-------------------------" << endl;
    cout << "Your sorted array A: \n";
    cout << "-------------------------" << endl;
    for (i = 0; i < N; i++)
    {
        for (j = 0; j < M; j++)
            cout << a[i][j] << "\t";
        cout << endl;
    }
 
    cout << "-------------------------" << endl;
    
    
 
    for (j = 0; j < M; j++)
    {
        for (i = 0; i < N; i++)
        {
            b[j] += a[i][j];
        }
        b[j] /= N;
    }
 
    cout << "Your array B: \n";
    cout << "-------------------------" << endl;
    for (i = 0; i < M; i++)
    {
        cout << b[i] << "\t";
    }
 
 
 
    system("pause");
    return 0;
}
Я уже совсем теряюсь...вроде и делаю все так даже понимать начал, но что-то не то.
0
 Аватар для nullpointer
48 / 48 / 14
Регистрация: 30.03.2009
Сообщений: 523
03.09.2014, 23:19
GetLucky, виноват, неправильно сказал, сплю уже.
Обнуление перед
C++
1
2
3
for (i = 0; i < N; i++)
    for (j = 0; j < M; j++)
        cin >> a[i][j];
И если уж вы подключили русский язык, то и пишите тогда на русском.
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
03.09.2014, 23:19
GetLucky, зайдем с другого конца,напишите подробные комментарии к вашему последнему варианту.
0
0 / 0 / 1
Регистрация: 03.09.2014
Сообщений: 87
03.09.2014, 23:21  [ТС]
nullpointer, а чего последнее так посчитало?
Миниатюры
Подсчитать среднее арифметическое элементов каждого столбца матрицы и ввести все это в одномерный массив  
0
0 / 0 / 1
Регистрация: 03.09.2014
Сообщений: 87
03.09.2014, 23:22  [ТС]
Подключил, но потом понял, что раскладку менять не хочу. Сотру потом подключение. Да и это первые шаги в С++, пытаюсь пробовать все новое и смотреть что выходит.
0
 Аватар для nullpointer
48 / 48 / 14
Регистрация: 30.03.2009
Сообщений: 523
03.09.2014, 23:27
GetLucky, последнее считает неправильно, потому что у вас последний элемент массива b не обнуляется, т.к. количество строк всего 2. Вынесите обнуление этого массива в отдельный цикл до M.
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
03.09.2014, 23:30
nullpointer, зачем здесь обнулять?
GetLucky, давайте определимся,вы хотите получить готовое решение,или разобраться с кодом?

Добавлено через 1 минуту
А все,не читал 1 страницу
0
 Аватар для nullpointer
48 / 48 / 14
Регистрация: 30.03.2009
Сообщений: 523
03.09.2014, 23:31
S_el, где здесь?
Обнулять надо для того чтобы вот тут
C++
1
b[j] += a[i][j];
считалось правильно.
1
0 / 0 / 1
Регистрация: 03.09.2014
Сообщений: 87
03.09.2014, 23:32  [ТС]
S_el,
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
// Подключение библиотек: algorithm - для работы с алгоритмами, iostream - для работы с вводом/выводом данных
#include <algorithm>
#include <iostream>
// Возможность использовать std Обращение к объектам напрямую
using namespace std;
// Описание функции main()
int main()
{   
    // Подключение русского языка для консоли
    setlocale(LC_ALL, "RUS");
    // Объявление переменных
    int i, j, N, M, a[20][20];
    int b[50];
    
    // Ввод и считывание данных с клавиатуры
    cout << "Enter number of rows. N=";
    cin >> N;
    cout << "Enter number of columns. M=";
    cin >> M;
    cout << "Enter array elements: \n";
 
    // Цикл для обнуления массива
    for (i = 0; i < N; i++)
    {
        for (j = 0; j < M; j++)
        {
            a[i][j] = 0;
        }
        b[i] = 0.0;
    }
    
    // Цикл для заполнения массива
    for (i = 0; i < N; i++)
 
    for (j = 0; j < M; j++)
        cin >> a[i][j];
    // Вывод массива
    cout << "-------------------------" << endl;
    cout << "Your array A: \n";
    cout << "-------------------------" << endl;
    for (i = 0; i < N; i++)
    {
        for (j = 0; j < M; j++)
            cout << a[i][j] << "\t";
        cout << endl;
    }
    // Сортировка первой строки пред.массива по возростанию 
    sort(a[0], a[0] + M);
    // Вывод отсортированного массива
    cout << "-------------------------" << endl;
    cout << "Your sorted array A: \n";
    cout << "-------------------------" << endl;
 
    for (i = 0; i < N; i++)
    {
        for (j = 0; j < M; j++)
            cout << a[i][j] << "\t";
        cout << endl;
    }
 
    cout << "-------------------------" << endl;
    
    
    // Подсчет среднего арифметического всех столбцов отсортированного массива 
    for (j = 0; j < M; j++)
    {
        for (i = 0; i < N; i++)
        {
            b[j] += a[i][j];
        }
        b[j] /= N;
    }
    // Вывод одномерного массива всех среднеарифметических.
    cout << "Your array B: \n";
    cout << "-------------------------" << endl;
    for (i = 0; i < M; i++)
    {
        cout << b[i] << "\t";
    }
 
 
    // "Пауза" консольного приложения, задержка экрана
    system("pause");
    // Возвращение значений
    return 0;
}
Вроде так, поправьте если что-то не правильно понял. Сейчас уже ночь, завтра еще посижу над ним, разберу на части.
0
03.09.2014, 23:33

Не по теме:

Цитата Сообщение от nullpointer Посмотреть сообщение
S_el, где здесь?
Обнулять надо для того чтобы вот тут
Тоже засыпаю,не сразу сообразил,что 2 страница пошла.

0
0 / 0 / 1
Регистрация: 03.09.2014
Сообщений: 87
03.09.2014, 23:34  [ТС]
nullpointer, можно подробнее про
Цитата Сообщение от nullpointer Посмотреть сообщение
GetLucky, последнее считает неправильно, потому что у вас последний элемент массива b не обнуляется, т.к. количество строк всего 2. Вынесите обнуление этого массива в отдельный цикл до M.
0
 Аватар для nullpointer
48 / 48 / 14
Регистрация: 30.03.2009
Сообщений: 523
03.09.2014, 23:36
Лучший ответ Сообщение было отмечено GetLucky как решение

Решение

GetLucky, вот это
C++
1
2
3
4
5
6
7
8
for (i = 0; i < N; i++)
    {
        for (j = 0; j < M; j++)
        {
            a[i][j] = 0;
        }
        b[i] = 0.0;
    }
замените на
C++
1
2
3
4
5
6
7
8
9
for (i = 0; i < N; i++)
    {
        for (j = 0; j < M; j++)
        {
            a[i][j] = 0;
        }
}
for (i = 0; i < M; i++)
        b[i] = 0.0;
И все будет работать.

Добавлено через 1 минуту
GetLucky, внешний цикл идет до N = 2 - количества строк, а столбцов 3, т.е. средне арифметических тоже будет 3. Но в данном случае обнуляются только элементы b[0] и b[1], а b[2] - мусор.
1
0 / 0 / 1
Регистрация: 03.09.2014
Сообщений: 87
03.09.2014, 23:38  [ТС]
nullpointer, блин, а я протупил и взял место
C++
1
 b[i] = 0.0;
C++
1
 b[j] = 0.0;
. Снова путаю столбцы с строчками..
0
 Аватар для nullpointer
48 / 48 / 14
Регистрация: 30.03.2009
Сообщений: 523
03.09.2014, 23:39
GetLucky, в вашем цикле правильно стояла i. Сравните ваши циклы и то что я написал постом выше. Возьмите на листочке по шагам распишите как будут обнуляться элементы в ваших циклах и в моих из поста выше, и тогда вы все поймете.
0
0 / 0 / 1
Регистрация: 03.09.2014
Сообщений: 87
03.09.2014, 23:41  [ТС]
nullpointer, тогда я перемудрил)
Большое спасибо Вам за помощь и потраченное на меня время/нервы.
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
03.09.2014, 23:43
GetLucky,
83 строчка это вызов системной функции с аргументом(указанием) pause.
84 возвращение значения отработанной программы,в main можно опустить,по умолчанию = 0.
дополнительный цикл для подсчета среднего арифметического не нужен,расчеты можно и в предыдущих сделать.

48 строка,почему именно такие аргументы у функции sort?
6 строка,поправка к комментарию- это не описание,далее следует сама функция main()

Добавлено через 1 минуту
nullpointer, а зачем вы рекомендуете выносить в отдельный цикл?Это лишние операции и объемный код.
0
 Аватар для nullpointer
48 / 48 / 14
Регистрация: 30.03.2009
Сообщений: 523
04.09.2014, 07:32
S_el, потому что сейчас что происходит я описал, в данном случае это коректно работате только если N=M, но когда N < M обнуляются не все элементы. Если внести обнуление массива b во внутренний цикл, то обнуление будет N раз и вот тут как раз и будут лишние операции.
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
04.09.2014, 08:11
Цитата Сообщение от nullpointer Посмотреть сообщение
Если внести обнуление массива b во внутренний цикл, то обнуление будет N раз и вот тут как раз и будут лишние операции.
Можно и в условный оператор запихнуть.
0
 Аватар для nullpointer
48 / 48 / 14
Регистрация: 30.03.2009
Сообщений: 523
04.09.2014, 17:48
S_el, я писал с точки зрения простоты для ТС, а так, да, можно много всего придумать
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
04.09.2014, 18:06
nullpointer, ага,надо переходить на vector или array и не заморачиваться с обнулением
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.09.2014, 18:06

Найти среднее арифметическое элементов каждого столбца матрицы
Дана целая прямоугольная матрица размерности NxM. Найти среднее арифметическое элементов каждого столбца и упорядочить столбцы по...

Найти среднее арифметическое элементов каждого столбца матрицы
1)Разработать алгоритм и программу решения задачи:&quot; Дана действительная матрица размера n*m.Найти среднее арифметическое элементов каждого...

Отпечатать среднее арифметическое элементов каждого столбца матрицы
Помогите решить. Для матрицы из 2 строк и 9 столбцов отпечатать среднее арифметическое элементов каждого столбца,в котором абсолютная...

Найти среднее арифметическое положительных элементов каждого столбца матрицы
Дана матрица А порядка n. Найти среднее арифметическое положительных элементов каждого столбца матрицы. Помогите пожалуйста!

Определить среднее арифметическое положительных элементов каждого столбца матрицы
дан двухмерный массив 5х6. Определить среднее арифметическое положительных элементов каждого столбца. #include &lt;iostream&gt; ...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Опции темы

Новые блоги и статьи
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru