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

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

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

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

07.11.2009, 20:32. Просмотров 666. Ответов 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
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2009, 20:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Обмен элементов двумерного массива (C++):

количество четных элементов одномерного массива до числа равному а, Определить количество нечетных элементов двумерного массива - C++
1.Найти количество четных элементов одномерного массива до первого встреченного числа равного наперед заданному числу а. 2.Дан двумерный...

Определить, сколько элементов двумерного массива больше всех элементов на главной диагонали - C++
Условие: Определить сколько элементов двумерного массива больше всех элементов на главной диагонали. ВСЕ РАБОТАЕТ, но нужно решить с...

залить из двумерного массива данные в одномерный длиной, равной количеству всех элементов исходного массива - C++
Доброго времени суток :) Образовался новый глупый вопрос... Предположим у меня есть двухмерный массив: vertex** massiv() { ...

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

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

определить количество элементов двумерного массива,которые меньше среднего арифметического значения всех элементов своей строки - C++
дан вещественный массив A. определить количество элементов массива,которые меньше среднего арифметического значения всех элементов своей...

4
M128K145
Эксперт С++
8293 / 3513 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
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];
    }
0
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]);
     }
 
}
А вот что на экране:
0
Миниатюры
Обмен элементов двумерного массива  
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;
        }
0
Vivo
23 / 23 / 2
Регистрация: 27.09.2009
Сообщений: 101
08.11.2009, 17:29  [ТС] #5
Вот этот вариант подходит. Огромное спасибо за помощь.
0
08.11.2009, 17:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.11.2009, 17:29
Привет! Вот еще темы с ответами:

Посчитать кол-во элементов между максимальным и минимальным значением элементов двумерного массива( подразумевается, что эти значения уже найдены) - C++
Как посчитать? З.Ы. массив 5х2(если это важно...)

Сравнение элементов двумерного массива - C++
Доброго времени суток. Нужно написать программу, которая проверяет, есть ли во введённом с клавиатуры массиве элементы с одинаковыми...

Сортировка элементов двумерного массива - C++
Помогите пожалуйста переделать код, чтобы сортировала столбцы, а не строки. int a; int b; int i, j, k; int tmp; for(i = 0; i &lt; m;...

Сумма элементов двумерного массива - C++
Найти сумму элементов двумерного массива?


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

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

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