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

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

Войти
Регистрация
Восстановить пароль
 
Vivo
23 / 23 / 2
Регистрация: 27.09.2009
Сообщений: 101
#1

Обмен элементов двумерного массива - C++

07.11.2009, 20:32. Просмотров 641. Ответов 4
Метки нет (Все метки)

Помогите пожалуйста с сортировкой массива на C. Задание: Сформировать квадратную целочисленную матрицу. Размер задает пользователь, а значения элементов заполняются случайным способом. Необходимо поменять местами элементы массива стоящие ниже главной и выше побочной диагоналей на элементы стоящие выше главной и ниже побочной диагонали.
Приведу пример с квадратной матрицей размером в 5 элементов:

исходная матрица (значения элементов случайные):
0 0 0 0 0
1 0 0 0 2
1 1 0 2 2
1 0 0 0 2
0 0 0 0 0
матрица которая должна получиться после сортировки:
0 0 0 0 0
2 0 0 0 1
2 2 0 1 1
2 0 0 0 1
0 0 0 0 0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2009, 20:32     Обмен элементов двумерного массива
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
M128K145
Эксперт С++
8282 / 3501 / 143
Регистрация: 03.07.2009
Сообщений: 10,707
07.11.2009, 20:38     Обмен элементов двумерного массива #2
C++
1
2
3
4
5
6
7
8
int i, j;
for(i = 0; i < n; ++i)
    for(j = 0; j < n; ++j)
    {
        matr[i][j] ^= matr[i][n - j - 1];
        matr[i][n - j - 1] ^= matr[i][j];
        matr[i][j] ^= matr[i][n - j - 1];
    }
Vivo
23 / 23 / 2
Регистрация: 27.09.2009
Сообщений: 101
07.11.2009, 23:47  [ТС]     Обмен элементов двумерного массива #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
main()
{
     int matr[10][10];
     int j,i,n;
 
     
     randomize();
     
     printf("Vvedite razmer kvadratnoi matrici: ");
     scanf("%d",&n);
 
     for (i=0; i<n;i++)
     {
          printf("\n");
          for (j=0; j<n;j++)
          printf("%d ",matr[i][j]=rand()%5);
     }
 
 
     printf("\n");
 
     for(i = 0; i < n; ++i)
     for(j = 0; j < n; ++j)
     {
        matr[i][j] ^= matr[i][n - j - 1];
        matr[i][n - j - 1] ^= matr[i][j];
        matr[i][j] ^= matr[i][n - j - 1];
     }
 
     for (i=0; i<n;i++)
     {
          printf("\n");
          for (j=0; j<n;j++)
          printf("%d ",matr[i][j]);
     }
 
}
А вот что на экране:
Миниатюры
Обмен элементов двумерного массива  
manfeese
129 / 128 / 16
Регистрация: 04.01.2009
Сообщений: 415
08.11.2009, 00:33     Обмен элементов двумерного массива #4
C++
1
2
3
4
5
6
7
8
9
10
11
#include <math.h>
 
int i,j;
int max = (n-1)/2;
for (i=1;i<n;i++)
   for (j=0;j<(max-abs(max-i));j++)
      {
        int temp = matr[i][j];
             matr[i][j]=matr[i][(n-1)-j];
             matr[i][(n-1)-j]=temp;
        }
Vivo
23 / 23 / 2
Регистрация: 27.09.2009
Сообщений: 101
08.11.2009, 17:29  [ТС]     Обмен элементов двумерного массива #5
Вот этот вариант подходит. Огромное спасибо за помощь.
Yandex
Объявления
08.11.2009, 17:29     Обмен элементов двумерного массива
Ответ Создать тему
Опции темы

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