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

Замена всех элементов матрицы над главной диагональю максимальным элементом - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
yani
0 / 0 / 0
Регистрация: 22.03.2012
Сообщений: 5
06.04.2012, 00:18     Замена всех элементов матрицы над главной диагональю максимальным элементом #1
1.ввести матрицу
2.найти максимальный элемент
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main ()
{
   setlocale (LC_ALL, "Russian");
    int razmer;
    int array [100][100];
    cout << "Введите размерность матрицы -> ";
    cin >> razmer;
    cout<<"Исходная матрица размерностью : " <<razmer<<'x'<<razmer<<endl;
    cout<<endl;
    
    srand ((signed) time (NULL));         // стартовая точка при генерации случайных чисел,значения функции рандома
    for (int i=0; i< razmer; i++)             // строка  // присвоение  эл-ту матрицы целого числа
        for (int j=0; j < razmer; j++)        // столбец  // присвоение эл-ту матрицы целого числа
            array [i][j] = rand() %100;   // остаток от деления на 100 (для работы с меньшими числами)
    for (int i=0; i < razmer; i++)            //вывод матрицы
    {
        for (int j=0; j < razmer; j++)        
            cout<<array [i][j]<<'\t';   
            cout<<endl<<endl;
    }
     
              int imax(0),jmax(0);                      //поиск максимального элемента матрицы
            array [imax][jmax] = array [0][0];
             { for (int i=0;i < razmer;i++)
                for (int j=0;j < razmer;j++)
{                if (array [i][j] > array [imax][jmax])
                     array [imax][jmax] = array [i][j];
}
                cout<<"Максимальный элемент -> "<<array [imax][jmax]<<endl;
                cout<<endl;
                cout << "Преобразованная матрица"<<endl;
                cout<<endl;
                int max = array [imax][jmax];
                 for (int i = 1; i < razmer; i++)
                 {
                     array[i][i] = max;
                 }
                        
                for (int i = 0; i < razmer; i++)              
                {
                    for (int j = 0; j < razmer; j++)          
                        cout<<array [i][j]<<'\t';   
                        cout<<endl<<endl;
                }
 
}
             return 0;
}
получилось только элементы главной диагонали
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2012, 00:18     Замена всех элементов матрицы над главной диагональю максимальным элементом
Посмотрите здесь:

замена отрицательных элементов в матрице над главной диагональю C++
C++ Определить максимальный и минимальный элемент среди всех элементов матрицы лежащие над главной диагональю
Найти наибольший элемент среди элементов матрицы, расположенных над главной диагональю и под боковой диагональю C++
C++ вычислить сумму элементов матрицы над главной диагональю под главной диагональю и на главной диагонали
Сформировать одномерный массив из элементов, стоящих над главной диагональю матрицы K(m,m). Найти сумму элементов этого массива. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
antoha398
155 / 155 / 3
Регистрация: 29.03.2012
Сообщений: 418
06.04.2012, 00:55     Замена всех элементов матрицы над главной диагональю максимальным элементом #2
Примерно так:
C++
1
2
3
for (int i=0; i < razmer; ++i)
  for (int j=0; j < razmer; ++j)
    if (i < j ) array[i][j] = max;
yani
0 / 0 / 0
Регистрация: 22.03.2012
Сообщений: 5
06.04.2012, 01:15  [ТС]     Замена всех элементов матрицы над главной диагональю максимальным элементом #3
большое спасибо
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
06.04.2012, 01:27     Замена всех элементов матрицы над главной диагональю максимальным элементом #4
Думаю так будет лучше, так как, во-первых: не придется выполнять сравнивание, во-вторых: число итераций вложенного цикла намного меньше.
C++
1
2
3
for ( int i = 0; i < razmer; i++ )
        for ( int j = i + 1; j < razmer; j++ )
            arr[ i ][ j ] = max;
yani
0 / 0 / 0
Регистрация: 22.03.2012
Сообщений: 5
06.04.2012, 01:37  [ТС]     Замена всех элементов матрицы над главной диагональю максимальным элементом #5
Товарищи программисты ,
спасибо за ответы!
antoha398
155 / 155 / 3
Регистрация: 29.03.2012
Сообщений: 418
06.04.2012, 11:13     Замена всех элементов матрицы над главной диагональю максимальным элементом #6
Цитата Сообщение от Toshkarik Посмотреть сообщение
Думаю так будет лучше, так как, во-первых: не придется выполнять сравнивание, во-вторых: число итераций вложенного цикла намного меньше.
C++
1
2
3
for ( int i = 0; i < razmer; i++ )
        for ( int j = i + 1; j < razmer; j++ )
            arr[ i ][ j ] = max;
Ну да, как вариант)
Только во внешнем цикле правую границу надо сдвинуть на единицу: razmer-1
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
06.04.2012, 15:29     Замена всех элементов матрицы над главной диагональю максимальным элементом #7
antoha398, зачем?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2012, 18:05     Замена всех элементов матрицы над главной диагональю максимальным элементом
Еще ссылки по теме:

Вычислить сумму и число положительных элементов матрицы, находящихся над главной диагональю C++
C++ Суммы квадратов элементов матрицы над и под главной диагональю
C++ Вычислить сумму и количество положительных элементов матрицы, находящихся над главной диагональю

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

Или воспользуйтесь поиском по форуму:
antoha398
155 / 155 / 3
Регистрация: 29.03.2012
Сообщений: 418
06.04.2012, 18:05     Замена всех элементов матрицы над главной диагональю максимальным элементом #8
Цитата Сообщение от Toshkarik Посмотреть сообщение
antoha398, зачем?
Ох, да. Забыл что массив с запасом взят)
Yandex
Объявления
06.04.2012, 18:05     Замена всех элементов матрицы над главной диагональю максимальным элементом
Ответ Создать тему
Опции темы

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