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

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

Войти
Регистрация
Восстановить пароль
 
SunCore
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 7
#1

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

17.03.2010, 23:46. Просмотров 702. Ответов 8
Метки нет (Все метки)

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

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

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

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

Поменять местами элементы главной и побочной диагонали - C++
Помогите поменять местами элементы главной и побочной диагонали, через двумерный массив.

Поменять местами элементы главной и побочной диагонали - C++
Помогите поменять местами элементы главной и побочной диагонали, через двумерный массив.

Поменять местами элементы главной и вспомогательной диагонали - C++
Проверьте, пожалуйста на правильность! Задание: поменять местами элементы главной и вспомогательной диагонали! for (int i = 0; i <...

Элементы главной диагонали матрицы поменять местами - C++
Суть задания такова: Сделать двумерный массив в виде функции , в данном массиве элементы главной диагонали должны меняться местами. ...

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

Не по теме:

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

0
Norby
65 / 65 / 2
Регистрация: 12.03.2008
Сообщений: 392
18.03.2010, 00:21 #6
Так, теперь давай в чем сложность? Что именно не можешь сделать? Там обычный двойной вложенный цикл.
0
Legend-muay
50 / 50 / 4
Регистрация: 10.03.2010
Сообщений: 174
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();   
}
1
Norby
65 / 65 / 2
Регистрация: 12.03.2008
Сообщений: 392
18.03.2010, 00:34 #8
Ну да. Правда
C++
1
#include "stdafx.h"
можно и не писать. И без него у меня в 2008 студии собирается проект.
1
SunCore
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 7
18.03.2010, 18:14  [ТС] #9
Norby, Legend-muay, Спасибо!
0
18.03.2010, 18:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.03.2010, 18:14
Привет! Вот еще темы с ответами:

Поменять местами элементы главной и побочной диагонали матрицы и найти столбцы, элементы которых убывают - C++
С++ Задана матрица A(n,n). Поменять местами элементы главной и побочной диагонали. В преобразованной матрице найти столбцы, элементы...

Поменять местами элементы главной и побочной диагонали массива - C++
Поменять местами элементы главной и побочной диагонали массива размерностью 5х5

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

Поменять местами элементы матрицы ниже и и выше главной диагонали - C++
Написал код, но он не заменяет, а копирует одно и тоже. Вот скрин Вот код программы#include &quot;stdafx.h&quot; #include &lt;iostream&gt; ...


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

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

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