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

Дан целочисленный массив a(n,m). Упорядочить по неубыванию элементы на главной диагонали и диагоналях, параллельных ей. Перестановка элементов допуска - C++

Восстановить пароль Регистрация
 
lineico
1 / 1 / 0
Регистрация: 03.05.2011
Сообщений: 8
03.05.2011, 23:06     Дан целочисленный массив a(n,m). Упорядочить по неубыванию элементы на главной диагонали и диагоналях, параллельных ей. Перестановка элементов допуска #1
Дан целочисленный массив a(n,m). Упорядочить по неубыванию
элементы на главной диагонали и диагоналях, параллельных ей.
Перестановка элементов допускается только в пределах
соответствующей диагонали.

Помогите решить задачу, плз, на Cu
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.05.2011, 23:06     Дан целочисленный массив a(n,m). Упорядочить по неубыванию элементы на главной диагонали и диагоналях, параллельных ей. Перестановка элементов допуска
Посмотрите здесь:

Дан двухмерный массив.Найти сумму элементов побочной диагонали и сумму элементов главной диагонали C++
C++ Разместить на главной диагонали матрицы суммы элементов, лежщих на диагоналях, перпендикулярных к главной
Дан двумерный массив, поменять элементы относительно главной диагонали C++
Составить вектор из сумм элементов диагоналей, параллельных главной диагонали C++
Поместить в массив суммы элементов параллельных главной диагонали C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
04.05.2011, 13:28     Дан целочисленный массив a(n,m). Упорядочить по неубыванию элементы на главной диагонали и диагоналях, параллельных ей. Перестановка элементов допуска #2
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
67
68
#include <stdio.h>
#include <iostream.h>
#include <windows.h>
 #include <malloc.h>
int main ()
{
        SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
        int **mas, n, m, i, j, y, tmp, temp;
        printf("Ââåäèòå êîëè÷åñòâî ñòðîê Г¬Г*Г±Г±ГЁГўГ*:\n");
                scanf("%d", &n);
                printf("Ââåäèòå êîëè÷åñòâî ñòîëáöîâ Г¬Г*Г±Г±ГЁГўГ*:\n");
                scanf("%d", &m);
                mas=(int**) malloc(n*sizeof(int*));
                for(i=0; i<n; i++)
                        mas[i]=(int*) malloc(m*sizeof(int));
                printf("Ââåäèòå ýëåìåГ*ГІГ» Г¬Г*Г±Г±ГЁГўГ*:\n");
                for(i=0; i<n; i++)
                        for(j=0; j<m; j++)
                        {   
                                printf("[%d][%d]=", i, j);
                                scanf("%d", &mas[i][j]);
                        }
                printf("ÈñõîäГ*ûé Г¬Г*Г±Г±ГЁГў:\n");
                for(i=0; i<n; i++)
                {
                        for(j=0; j<m; j++)
                        {
                                printf("%4d ", mas[i][j]);
                        }
                        printf("\n");
                }
                // ñîðòèðîâêГ*
                for(i=0; i<n-1; i++)
                {
                    for(j=0; j<n-1-i && j<m-1; j++)
                    {
                        tmp=j;
                        for(y=j+1; y<n-i && y<m; y++)
                            if(mas[i+y][y]<mas[i+tmp][tmp])
                                tmp=y;
                        temp=mas[i+j][j]; mas[i+j][j]=mas[i+tmp][tmp]; mas[i+tmp][tmp]=temp;
                    }
                }
                for(i=1; i<m-1; i++)
                {
                    for(j=0; j<n-1 && j+i<m-1; j++)
                    {
                        tmp=j;
                        for(y=j+1; y<n && y+i<m; y++)
                            if(mas[tmp][i+tmp]>mas[y][i+y])
                                tmp=y;
                        temp=mas[j][j+i]; mas[j][j+i]=mas[tmp][tmp+i]; mas[tmp][tmp+i]=temp;
                    }
                    
                }   
                printf("Ïîëó÷åГ*Г*ûé Г¬Г*Г±Г±ГЁГў:\n");
                for(i=0; i<n; i++)
                {
                        for(j=0; j<m; j++)
                        {
                                printf("%5d ", mas[i][j]);
 
                        }
            printf("\n");
                }
           return 0; 
}
lineico
1 / 1 / 0
Регистрация: 03.05.2011
Сообщений: 8
05.05.2011, 00:47  [ТС]     Дан целочисленный массив a(n,m). Упорядочить по неубыванию элементы на главной диагонали и диагоналях, параллельных ей. Перестановка элементов допуска #3
valeriikozlov, спасибо огромное !)
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
14.05.2011, 18:35     Дан целочисленный массив a(n,m). Упорядочить по неубыванию элементы на главной диагонали и диагоналях, параллельных ей. Перестановка элементов допуска #4
По заявкам:
Дан целочисленный массив a(n,m). Упорядочить по неубыванию элементы на побочной диагонали и диагоналях, параллельных ей.
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
67
68
#include <stdio.h>
#include <iostream.h>
#include <windows.h>
 #include <malloc.h>
int main ()
{
        SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
        int **mas, n, m, i, j, y, tmp, temp;
        printf("Введите количество строк массива:\n");
                scanf("%d", &n);
                printf("Введите количество столбцов массива:\n");
                scanf("%d", &m);
                mas=(int**) malloc(n*sizeof(int*));
                for(i=0; i<n; i++)
                        mas[i]=(int*) malloc(m*sizeof(int));
                printf("Введите элементы массива:\n");
                for(i=0; i<n; i++)
                        for(j=0; j<m; j++)
                        {   
                                printf("[%d][%d]=", i, j);
                                scanf("%d", &mas[i][j]);
                        }
                printf("Исходный массив:\n");
                for(i=0; i<n; i++)
                {
                        for(j=0; j<m; j++)
                        {
                                printf("%4d ", mas[i][j]);
                        }
                        printf("\n");
                }
                                // сортировка
                                for(i=1; i<m; i++)
                                {
                                        for(j=0; j<n-1 && j<i; j++)
                                        {
                                                tmp=j;
                                                for(y=j+1; y<n && y<=i; y++)
                                                        if(mas[y][i-y]<mas[tmp][i-tmp])
                                                                tmp=y;
                                                temp=mas[j][i-j]; mas[j][i-j]=mas[tmp][i-tmp]; mas[tmp][i-tmp]=temp;
                                        }
                                }
                                for(i=1; i<n-1; i++)
                                {
                                        for(j=0; j<m-1 && j+i<n-1; j++)
                                        {
                                                tmp=j;
                                                for(y=j+1; y<m && y+i<n; y++)
                                                        if(mas[i+tmp][m-1-tmp]>mas[i+y][m-1-y])
                                                                tmp=y;
                                                temp=mas[i+j][m-1-j]; mas[i+j][m-1-j]=mas[i+tmp][m-1-tmp]; mas[i+tmp][m-1-tmp]=temp;
                                        }
                                        
                                }   
                printf("Полученный массив:\n");
                for(i=0; i<n; i++)
                {
                        for(j=0; j<m; j++)
                        {
                                printf("%5d ", mas[i][j]);
 
                        }
            printf("\n");
                }
           return 0; 
}
Yandex
Объявления
14.05.2011, 18:35     Дан целочисленный массив a(n,m). Упорядочить по неубыванию элементы на главной диагонали и диагоналях, параллельных ей. Перестановка элементов допуска
Ответ Создать тему
Опции темы

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