0 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 47
1

Перестановками заполнить главную диагональ двумерного массива наибольшими элементами

21.11.2014, 13:18. Показов 636. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана квадратная матрица. С помощью перестановок добиться того, чтобы её максимальный элемент находился в верхнем левом углу, следующий по величине в позиции (2.2) и т.д. Таким образом необходимо заполнить все главную диагональ.
Подскажите, как рациональнее сделать это.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.11.2014, 13:18
Ответы с готовыми решениями:

Поменять главную и побочную диагональ квадратного двумерного массива
Всем доброго времени суток. Помогите, пожалуйста, разобраться с задачкой. Написать программу, в...

Вывести главную диагональ двумерного массива 5 на 5
Привет, дорогие форумчаны =) Кто может помочь с очень простой задачкой, до которой я не могу...

Не используя, оператор if заполнить нулями главную диагональ массива
Не используя, оператор if заполнить нулями главную диагональ массива.

Заполнить главную диагональ числами от 1 до m
Помогите пожалуйста с заданием. Нужно вывести массив в Label заполненный нулями и главная диагональ...

3
Модератор
Эксперт С++
13249 / 10389 / 6212
Регистрация: 18.12.2011
Сообщений: 27,792
21.11.2014, 13:28 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int a[N][N];
...
for(int i=0;i<n;i++)
{
  int mx=a[i][i];
  int i0=i;
  int j0=i;
  for(int i1=0;i1<N;i1++)
    for(int j=0;j<N;j++)
       if( (i1!=j || i1>i) && mx<a[i1][j])
       {
             mx=a[i1][j];
             i0=i1;j0=j;
       }
   int t=a[i][i];
   a[i][i]=mx;
   a[i0][j0]=t;
}
0
Знаток
156 / 156 / 185
Регистрация: 18.11.2012
Сообщений: 411
Записей в блоге: 2
21.11.2014, 13:38 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
// Example program
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
    int a[100][100],buf,n,max,x,y,b[100];
    cin>>n;
    
    for(int i=0;i<n;i++)
    for(int j=0;j<n;j++)
    cin>>a[i][j];
    
    int min=a[0][0];
    for(int i=0;i<n;i++)
    for(int j=0;j<n;j++)
    if(min>a[i][j]) min=a[i][j];
  
    for(int k=0;k<n;k++)
    {
    b[k]=a[0][0];x=0;y=0;
    for(int i=0;i<n;i++)
    for(int j=0;j<n;j++)
    if(a[i][j]>b[k]){b[k]=a[i][j];x=i;y=j;}
    a[x][y]=a[k][k];
    a[k][k]=min;    
    }
    for(int i=0;i<n;i++)
    a[i][i]=b[i];
    
    for(int i=0;i<n;i++)
    {for(int j=0;j<n;j++)
    cout<<a[i][j]<<' ';
    cout<<endl;}
 return 0;   
}
0
0 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 47
21.11.2014, 21:29  [ТС] 4
Скажите, а где в этом коде Вы находите следующий за максимальным элемент. Объясните, пожалуйста, как работает?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.11.2014, 21:29
Помогаю со студенческими работами здесь

Заполнить DataGridView нулями, а главную диагональ - единицами
Нужно создать таблицу в c#(формы) с помощью datagridview, в котором пользователь сам вводит строки...

Заполнить главную и побочную диагональ матрицы 0, а остальные элементы 1
Составить программу, которая создает и выводит на экран таблицу, в которой главной и побочной...

Заполнить главную диагональ матрицы значениями минимальных элементов ее строк
при условии что матрица квадратная(n=m),заполнить главную диагональ матрицы значениями минимальных...

В двумерном массиве главную диагональ заполнить максимальным элементом данной матрицы
В двумерной массиве главную диагональ заполнить максимальным элементом данной матрицы.


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru