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

Каждый элемент матрицы умножить на максимальный элемент у поточному рядку. Вывести на экран начальную та полученную матрицы - C++

Восстановить пароль Регистрация
 
Toda
10 / 10 / 0
Регистрация: 16.11.2012
Сообщений: 320
12.06.2013, 13:29     Каждый элемент матрицы умножить на максимальный элемент у поточному рядку. Вывести на экран начальную та полученную матрицы #1
Здравствуйте! Дано задание: Каждый элемент матрицы умножить на максимальный элемент у поточному рядку. Вывести на экран начальную та полученную матрицы.
Размеры матрицы задаются пользователем, то есть, массив - динамический.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.06.2013, 13:29     Каждый элемент матрицы умножить на максимальный элемент у поточному рядку. Вывести на экран начальную та полученную матрицы
Посмотрите здесь:

C++ Умножить каждый элемент столбца матрицы A(n, m) на первый элемент данного столбца.
Поменять местами столбцы матрицы: столбец, содержащий максимальный элемент матрицы, и столбец, содержащий минимальный элемент матрицы. C++
C++ Найти минимальный и максимальный элемент матрицы и вывести его на экран с указанием номеров их строк и столбцов.
C++ Максимальный элемент матрицы заменить на нуль и вывести на печать угол матрицы, в котором расположен этот максимальный элемент
Максимальный элемени матрицы заменить на нуль и вывести на печать угол матрицы, в котором расположен этот максимальный элемент C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
happyzombiE
4 / 4 / 0
Регистрация: 12.06.2013
Сообщений: 26
12.06.2013, 14:49     Каждый элемент матрицы умножить на максимальный элемент у поточному рядку. Вывести на экран начальную та полученную матрицы #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
47
48
49
50
51
52
53
#include<iostream>
 
using namespace std;
 
int main()
{
    int **arr, *temp;
    int n,m,max;
    cout<<"Enter size of array : \n";
    cout<<"n = "; cin>>n;       /* вводим размеры матрицы */
    cout<<"\nm = "; cin>>m;
    arr = new int*[n];
    temp = new int[n];
    for (int i = 0; i < n; i++)     // создаем
       arr[i]=new int[m];           //   динамический двумерный массив
    srand(time(NULL));            // для генерации псевдослучайных чисел
    for (int i = 0; i < n; i++)      // используется время
        for (int j = 0; j < m; j++)   //заполняем массив
            arr[i][j]=rand()%100;      // случайными числами меньше 100
    for (int i = 0; i < n; i++)
        {
        max = arr[i][0];
        for (int j = 0; j < m; j++)
            if (max < arr[i][j])     // находим максимальный элемент
                max = arr[i][j];    //    в каждой строке матрицы
            temp[i]=max;            //    и записываем их в массив temp
        }
    cout<<"\n    OLD ARRAY          \n";
    for (int i = 0; i < n; i++)
        {                                     //выводим исходную матрицу
            cout << "\n";
            for (int j = 0; j < m; j++)
                {
                    cout<<" "<<arr[i][j];
                    if (j == m-1) cout<<" | max = "<<temp[i];  //для наглядности, пишем максимальные элементы каждой строки
                }
 
 
        }
    cout<<" \n\n   NEW ARRAY          \n";
    for (int i = 0; i < n; i++)    //выводим новую матрицу
        {
            cout<<"\n";
            for (int j = 0; j < m; j++)
                cout<<" "<<arr[i][j]*temp[i]; //тут умножаем каждый элемент, на максимальные значения соотв. строк
        }
    for (int i = 0; i < n; i++)    //удаляем двумерный массив из памяти
        delete[] arr[i];
    delete[] temp; //очищаем память
    cout<<"\n\n";
    system("pause");
    return 0;
}
Добавлено через 1 минуту
кстати я не очень силен в украинском, мог банально неправильно понять задание
Toda
10 / 10 / 0
Регистрация: 16.11.2012
Сообщений: 320
13.06.2013, 13:20  [ТС]     Каждый элемент матрицы умножить на максимальный элемент у поточному рядку. Вывести на экран начальную та полученную матрицы #3
happyzombiE, я задание на русском написал

Добавлено через 17 часов 15 минут
Ребята, кто может эту же программу написать с использованием функций? Они являются обязательными условиями(
Каждый элемент матрицы умножить на максимальный элемент у текущем рядке. Вывести на экран начальную и полученную матрицы. Размеры матрицы задаются пользователем, то есть, массив - динамический.
По сути верхний код разбить на функции, для опытных пользователей 3 минуты дела. Ооочень буду благодарен!)
happyzombiE
4 / 4 / 0
Регистрация: 12.06.2013
Сообщений: 26
14.06.2013, 10:26     Каждый элемент матрицы умножить на максимальный элемент у поточному рядку. Вывести на экран начальную та полученную матрицы #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
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<iostream>
 
using namespace std;
 
void generate();
void find_max();
void display ();
 
//------------------------------------------
void generate (int **arr, int n, int m)
{
    srand(time(NULL));            // для генерации псевдослучайных чисел
    for (int i = 0; i < n; i++)      // используется время
        for (int j = 0; j < m; j++)   //заполняем массив
            arr[i][j]=rand()%100;      // случайными числами меньше 100
}
//------------------------------------------
void find_max(int **arr,int n, int m, int *temp)
{
  int max;
  for (int i = 0; i < n; i++)
        {
        max = arr[i][0];
        for (int j = 0; j < m; j++)
            if (max < arr[i][j])     // находим максимальный элемент
                max = arr[i][j];    //    в каждой строке матрицы
            temp[i]=max;            //    и записываем их в массив temp
        }
}
//------------------------------------------
void display (int **arr, int n, int m,int *temp)
{
       cout<<"\n    OLD ARRAY          \n";
    for (int i = 0; i < n; i++)
        {                                     //выводим исходную матрицу
            cout << "\n";
            for (int j = 0; j < m; j++)
                {
                    cout<<" "<<arr[i][j];
                    if (j == m-1) cout<<" | max = "<<temp[i];  //для наглядности, пишем максимальные элементы каждой строки
                }
        }
    cout<<" \n\n   NEW ARRAY          \n";
    for (int i = 0; i < n; i++)    //выводим новую матрицу
        {
            cout<<"\n";
            for (int j = 0; j < m; j++)
                cout<<" "<<arr[i][j]*temp[i]; //тут умножаем каждый элемент, на максимальные значения соотв. строк
        }
}
//------------------------------------------
 
int main()
{
    int **arr, *temp;
    int n,m;
    cout<<"Enter size of array : \n";
    cout<<"n = "; cin>>n;       /* вводим размеры матрицы */
    cout<<"\nm = "; cin>>m;
    arr = new int*[n];
    temp = new int[n];
    for (int i = 0; i < n; i++)     // создаем
       arr[i]=new int[m];           //   динамический двумерный массив
    generate (arr,n,m);
    find_max (arr,n,m,temp);
    display (arr, n,m,temp);
    for (int i = 0; i < n; i++)    //удаляем двумерный массив из памяти
        delete[] arr[i];
    delete[] temp; //очищаем память
    cout<<"\n\n";
    system("pause");
    return 0;
}
Toda
10 / 10 / 0
Регистрация: 16.11.2012
Сообщений: 320
16.06.2013, 15:38  [ТС]     Каждый элемент матрицы умножить на максимальный элемент у поточному рядку. Вывести на экран начальную та полученную матрицы #5
happyzombiE, да, спасибо большое)
Yandex
Объявления
16.06.2013, 15:38     Каждый элемент матрицы умножить на максимальный элемент у поточному рядку. Вывести на экран начальную та полученную матрицы
Ответ Создать тему
Опции темы

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