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

Отсортировать диагонали матрицы, параллельные главной, по убыванию элементов методом вставки - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Skypee
0 / 0 / 0
Регистрация: 23.05.2013
Сообщений: 6
23.05.2013, 16:11     Отсортировать диагонали матрицы, параллельные главной, по убыванию элементов методом вставки #1
Помогите исправить код, не могу доработать её.


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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <fstream>
#include <iomanip>
#include <iostream>
 
using namespace std;
ifstream in("input.txt");
ofstream out("output.txt");
void sort (int *a, int n)
{
mas temp;
int i,j;
for (i=1; i<n; i++)
{j=i;
while (a[j]<a[j-1] && j>0)
{
    temp=a[j];
    a[j]=a[j-1];
    a[j-1]=temp;
    j--;}
}
}
 
int main()
{
 int **mas;
 int n,i,j,m;
 int a[10][10];
 mas = new int*[n];
in>>n>>m
 for (i=0;i<n;i++)
 {
 mas = new int[n];
 for (j=0;j<n;j++) 
     in>>a[i][j];
 }
 int *diag1; 
 diag1 = new int[n+1]; 
 for (i=n-2;i>=0;i--)
 {
 for (j=0;j<n-i;j++) diag1[j] = mas[j][i+j];
 
 sort(diag1,n-i);
 for (j=0;j<n-i;j++) mas[j][i+j] = diag1[j];
 }
int *diag2; 
 diag2 = new int[n+1];
 for (i=1;i<n-1;i++)
 {
 for (j=i;j<=n-1;j++) diag2[j] = mas[j][j-i];
sort(diag2,n-i);
 for (j=i;j<=n-1;j++) mas[j][j-i] = diag2[j];
 }
 delete diag1;
 delete diag2;
out<<n<<'\t'<<m<<'\n';
for (i=0;i<n;i++)
 {
 for (j=0;j<n;j++)
 out<<setw(5)<<a[i][j];
 out<<'\n';
 delete mas;
 }
 in.close();
 out.close;
 return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2013, 16:11     Отсортировать диагонали матрицы, параллельные главной, по убыванию элементов методом вставки
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Lester Marshy
0 / 0 / 0
Регистрация: 09.11.2014
Сообщений: 8
09.05.2015, 18:28     Отсортировать диагонали матрицы, параллельные главной, по убыванию элементов методом вставки #2
Строка 14 , поменяй условия местами
Yandex
Объявления
09.05.2015, 18:28     Отсортировать диагонали матрицы, параллельные главной, по убыванию элементов методом вставки
Ответ Создать тему
Опции темы

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