Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 21.03.2016
Сообщений: 16
1

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

16.04.2016, 09:59. Просмотров 1282. Ответов 5
Метки нет (Все метки)

Заданный массив действительных чисел А (n, n). Необходимо каждый элемент столбца разделить на среднее арифметическое элементов данного столбца. На печать вывести начальный и результирующий массивы.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.04.2016, 09:59
Ответы с готовыми решениями:

Умножить каждый элемент столбца матрицы A(n, m) на первый элемент данного столбца.
Помогите, пожалуйста, написать программу: Умножить каждый элемент столбца матрицы A(n, m) на...

Дано матрицу А размером 8x7. Разделить каждый элемент столбца на элемент этого столбца...
Дано матрицу А размером 8x7. разделить каждый элемент столбца на элемент этого столбца, который...

Разделить элементы каждого столбца заданной матрицы на последний элемент столбца
Разделить элементы каждого столбца заданной матрицы на последний элемент столбца.

Массив: Разделить элементы каждого столбца заданной матрицы на последний элемент столбца.
Разделить элементы каждого столбца заданной матрицы на последний элемент столбца. Полученную...

5
88 / 76 / 38
Регистрация: 11.10.2015
Сообщений: 830
19.07.2016, 13: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
34
35
36
37
38
39
40
41
42
43
44
45
46
void task_20_1()
{
    const unsigned short rows = 4, cols = 5;
    int mass_1[rows][cols];
    float mass_2[rows][cols];
    int buffer;
    float average=0;
    cout << "Создайте двумерный массив 4*5. Метод заполнения произвольный.\n"
        << "Выведите его. Измените текущий массив, разделив все элементы каждого \n"
        << "столбца на среднее значение этого столбца. Выведите преобразованный массив." << endl << endl;
    //Fill and print original matrix
    for (int i = 0; i < rows; i++)
    {
        for (int j = 0; j < cols; j++)
        {
            mass_1[i][j] = rand() % 20;
            cout << setw(5) << mass_1[i][j];
        }
        cout << endl;
    }
    //Calculate
    for (int j = 0; j < cols; ++j)
    {
        buffer = 0;
        for (int i = 0; i < rows; ++i)
        {
            buffer += mass_1[i][j];
            average = (float)buffer / rows;
        }
    
        cout << "[" << j << "]" << " Сумма в столбце равна " << buffer  << " Среднее столбца равно " << average << " " << endl;
        
    }
    // И тут ничего не работает.....
    //Changed massiv
    for (int i = 0; i < rows; i++)
    {
        for (int j = 0; j < cols; j++)
        {
            mass_2[i][j] = mass_1[i][j] / average;
            cout << setw(10) << mass_2[i][j];
        }
        cout << endl;
    }
    
}
Не могу правильно вывести конечную матрицу. Помогите пожалуйста, где, допустил ошибку. Вернее работает, но матрица перевернулась. Как ее правильно вывести.
0
255 / 232 / 185
Регистрация: 02.04.2016
Сообщений: 898
19.07.2016, 14:06 3
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>
#include <ctime>
#include <algorithm>
using namespace std;
int main() {
 
    srand(time(0));
    const int n = 5;
    double a[n][n];
    for (int i = 0; i < n; ++i)
        for (int j = 0; j < n; ++j)
            a[i][j] = rand() % 100;
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j)
            cout << a[i][j] << " ";
        cout << endl;
    }
    cout << endl;
    for (int j = 0; j < n; ++j) {
        double sum = 0;
        for (int i = 0; i < n; ++i)
            sum += a[i][j];
        double arifm = sum / n;
        for (int i = 0; i < n; ++i)
            a[i][j] = a[i][j] / arifm;
    }
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j)
            cout << a[i][j] << " ";
        cout << endl;
    }
    return 0;
}
1
88 / 76 / 38
Регистрация: 11.10.2015
Сообщений: 830
19.07.2016, 14:23 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
42
43
44
45
46
47
void task_20_1()
{
    const unsigned short rows = 4, cols = 5;
    int mass_1[rows][cols];
    float mass_2[rows][cols];
    int buffer;
    float average=0;
    cout << "Создайте двумерный массив 4*5. Метод заполнения произвольный.\n"
        << "Выведите его. Измените текущий массив, разделив все элементы каждого \n"
        << "столбца на среднее значение этого столбца. Выведите преобразованный массив." << endl << endl;
    //Fill and print original matrix
    for (int i = 0; i < rows; i++)
    {
        for (int j = 0; j < cols; j++)
        {
            mass_1[i][j] = rand() % 20;
            cout << setw(5) << mass_1[i][j];
        }
        cout << endl;
    }
    //Calculate
    for (int j = 0; j < cols; ++j)
    {
        buffer = 0;
        for (int i = 0; i < rows; ++i)
        
            buffer += mass_1[i][j];
            average = (float)buffer / rows;
            for (int i = 0; i < rows; ++i)
                mass_2[i][j] = mass_1[i][j] / average;
        
    
        cout << "[" << j << "]" << " Сумма в столбце равна " << buffer  << " Среднее столбца равно " << average << " " << endl;
        
    }
    
    //Changed massiv
    for (int i = 0; i < rows; i++)
    {
        for (int j = 0; j < cols; j++)
        {
            cout << setw(10) << mass_2[i][j];
        }
        cout << endl;
    }
    
}
0
255 / 232 / 185
Регистрация: 02.04.2016
Сообщений: 898
19.07.2016, 14:32 5
Jman, вроде нету ошибки при беглом просмотре. Мне с телефона неудобно проверить.
1
88 / 76 / 38
Регистрация: 11.10.2015
Сообщений: 830
19.07.2016, 14:36 6
Все работает спасибо... Без третьего цикла в Calculate у меня не верная арифметика происходила.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.07.2016, 14:36

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Двумерный массив (каждый элемент массива разделить на среднее арифметическое этих элементов)
Задан массив действительных чисел А(n). Необходимо каждый элемент массива разделить на среднее...

Среднее арифметическое элементов каждого столбца матрицы
Что не так? в SA выводит все элементы = 0 Задание: Найти среднее арифметическое элементов каждого...

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

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


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

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

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