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

Матрица. Поменять местами элементы главной диагонали максимальными элементами ряда. - C++

Восстановить пароль Регистрация
 
SunCore
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 7
17.03.2010, 23:46     Матрица. Поменять местами элементы главной диагонали максимальными элементами ряда. #1
Матрица. Поменять местами элементы главной диагонали максимальными элементами ряда.

Матр, заполняеться рандомом, заранее спасибо!
//матрица прямоугольная.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.03.2010, 23:46     Матрица. Поменять местами элементы главной диагонали максимальными элементами ряда.
Посмотрите здесь:

[C++] Найти максимальнный элемент главной диагонали Поменять местами элементы... C++
C++ Заполнение главной диагонали матрицы максимальными элементами
Дана матрица 7х7, поменять местами элементы, симметрично относительно побочной диагонали C++
Поменять местами элементы главной и вспомогательной диагонали C++
Поменять местами элементы первого столбца с элементами побочной диагонали. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Norby
 Аватар для Norby
64 / 64 / 2
Регистрация: 12.03.2008
Сообщений: 392
17.03.2010, 23:54     Матрица. Поменять местами элементы главной диагонали максимальными элементами ряда. #2
Начнем с того что у прямоугольной матрицы нет главной диагонали. Как впрочем и побочной. Диагонали есть только у квадратной матрицы. Так что определитесь для начала какая вам нужна.
SunCore
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 7
17.03.2010, 23:56  [ТС]     Матрица. Поменять местами элементы главной диагонали максимальными элементами ряда. #3
Извиняюсь, туплю, квадратная.
Norby
 Аватар для Norby
64 / 64 / 2
Регистрация: 12.03.2008
Сообщений: 392
18.03.2010, 00:00     Матрица. Поменять местами элементы главной диагонали максимальными элементами ряда. #4
Идем дальше.
максимальными элементами ряда
Я так понимаю под рядом понимается строка?
SunCore
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 7
18.03.2010, 00:02  [ТС]     Матрица. Поменять местами элементы главной диагонали максимальными элементами ряда. #5
да. именно строка. переводил с украинского. из меня только промт выходит.

Не по теме:

У кожному рядку матриці A (n, n) знайти найбільший елемент і поміняти його місцями з відповідним діагональним елементом

Norby
 Аватар для Norby
64 / 64 / 2
Регистрация: 12.03.2008
Сообщений: 392
18.03.2010, 00:21     Матрица. Поменять местами элементы главной диагонали максимальными элементами ряда. #6
Так, теперь давай в чем сложность? Что именно не можешь сделать? Там обычный двойной вложенный цикл.
Legend-muay
50 / 50 / 4
Регистрация: 10.03.2010
Сообщений: 165
18.03.2010, 00:27     Матрица. Поменять местами элементы главной диагонали максимальными элементами ряда. #7
Наверное так... (функции делал когда-то на С, поэтому printf)
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
#include "stdafx.h"
#include <iostream>
using namespace std;
 
void RndMat( int n, int *a)
{
  int i, j;
  for ( i = 0; i < n; i++ )
      for ( j = 0; j < n; j++)
          *((int *)a + (i * n) + j ) = rand() % 30 + 1;
}
 
void  OutputMat( int n, int *a)
{
   for ( int i = 0; i < n; i++ )
       {
         for ( int j = 0; j < n; j++ )
             printf("%i ", *((int *)a + (i * n) + j ));
         printf("\n");
       }
}
 
void main(void)
{
    int n;
    cout<<"Введите размерность матрицы: "<<endl;
    cin>>n;
    int *a = new int [n*n];
    RndMat(n, a);
    cout<<"Исходная матрица"<<endl;
    OutputMat(n, a);
    for (int i = 0; i < n; i++)
        {
          int k = 0;
          for (int j = 1; j < n; j++)
              if (*((int *)a + (i * n) + j) > *((int *)a + (i * n) + k )) k = j;//if (a[i][j] > a[i][k]) k = j;
          int temp = *((int *)a + (i * n) + i);//temp = a[i][i] 
          *((int *)a + (i * n) + i) = *((int *)a + (i * n) + k);//a[i][i] = a[i][k]
          *((int *)a + (i * n) + k) = temp;//a[i][k] = temp
        }
    cout<<"Преобразованная матрица"<<endl;
    OutputMat(n, a);
    cin.get();
    cin.get();   
}
Norby
 Аватар для Norby
64 / 64 / 2
Регистрация: 12.03.2008
Сообщений: 392
18.03.2010, 00:34     Матрица. Поменять местами элементы главной диагонали максимальными элементами ряда. #8
Ну да. Правда
C++
1
#include "stdafx.h"
можно и не писать. И без него у меня в 2008 студии собирается проект.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.03.2010, 18:14     Матрица. Поменять местами элементы главной диагонали максимальными элементами ряда.
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
SunCore
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 7
18.03.2010, 18:14  [ТС]     Матрица. Поменять местами элементы главной диагонали максимальными элементами ряда. #9
Norby, Legend-muay, Спасибо!
Yandex
Объявления
18.03.2010, 18:14     Матрица. Поменять местами элементы главной диагонали максимальными элементами ряда.
Ответ Создать тему
Опции темы

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