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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
yani
0 / 0 / 0
Регистрация: 22.03.2012
Сообщений: 5
#1

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

06.04.2012, 00:18. Просмотров 1374. Ответов 7
Метки нет (Все метки)

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;
}
получилось только элементы главной диагонали
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2012, 00:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Замена всех элементов матрицы над главной диагональю максимальным элементом (C++):

Вычислить сумму элементов матрицы над главной диагональю под главной диагональю и на главной диагонали - C++
Даны матрицы А(4,3) и В(3,5). Для каждой матрицы вычислить сумму элементов над главной диагональю под главной диагональю и на главной...

Определить максимальный и минимальный элемент среди всех элементов матрицы лежащие над главной диагональю - C++
Дана квадратная матрица размерности n. Определить максимальный и минимальный элемент среди всех элементов матрицы лежащие над главной...

Найти наибольший элемент среди элементов матрицы, расположенных над главной диагональю и под боковой диагональю - C++
Нужно написать код на С++,обращаюсь к вам за помощью) Найти наибольший элемент среди элементов матрицы, расположенных над главной...

Суммы квадратов элементов матрицы над и под главной диагональю - C++
проверить равняются ли суммы квадратов элементов матрицы над и под главной диагональю? помогите пожалуйста

Найти произведение отрицательных элементов над главной диагональю матрицы - C++
Массив B задан по формуле B=sin(i+j+0,5).Найти произведение отрицательных элементов над главной диагональю. Помогите пожалуйста на с++.

Найти сумму отрицательных элементов матрицы, лежащих над главной диагональю - C++
ДАна матрица A(4,4) задать по формуле A=i*sin(j/0.1). Найти сумму отрицательных элементов матрицы, лежащих над главной диагональю. Найти...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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;
1
yani
0 / 0 / 0
Регистрация: 22.03.2012
Сообщений: 5
06.04.2012, 01:15  [ТС] #3
большое спасибо
0
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 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;
1
yani
0 / 0 / 0
Регистрация: 22.03.2012
Сообщений: 5
06.04.2012, 01:37  [ТС] #5
Товарищи программисты ,
спасибо за ответы!
0
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
0
Toshkarik
1141 / 858 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
06.04.2012, 15:29 #7
antoha398, зачем?
0
antoha398
155 / 155 / 3
Регистрация: 29.03.2012
Сообщений: 418
06.04.2012, 18:05 #8
Цитата Сообщение от Toshkarik Посмотреть сообщение
antoha398, зачем?
Ох, да. Забыл что массив с запасом взят)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2012, 18:05
Привет! Вот еще темы с ответами:

Вычислить среднее значение элементов матрицы, находящихся над главной диагональю - C++
Помогте пліз_____ На выбор второй опции меню вычислить среднее значение элементов матрицы, находящихся над главной диагональю, и...

Сформировать одномерный массив из элементов, стоящих над главной диагональю матрицы K(m,m). Найти сумму элементов этого массива. - C++
Сформировать одномерный массив из элементов, стоящих над главной диагональю матрицы K(m,m). Найти сумму элементов этого массива.

Вычислить сумму и количество положительных элементов матрицы, находящихся над главной диагональю - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;iomanip&gt; using namespace std; int main() { system(&quot;chcp 1251&quot;); int...

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.04.2012, 18:05
Ответ Создать тему
Опции темы

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