Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Eksees
0 / 0 / 1
Регистрация: 27.05.2016
Сообщений: 13
1

Отразить элементы NxN массива относительно центрального элемента

27.05.2016, 17:36. Просмотров 376. Ответов 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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
const int n=5;
void main(void)
 
    {
        int i,j,mas[n][n], temp, m_min, m_max, x;
        
        printf("\nEnter input data:");
        printf("\n Minimal element is ");
        scanf("%d", &m_min);
        printf("\n Maximal element is ");
        scanf("%d", &m_max);
        srand(time(NULL));
        printf("Initial massive:\n");
        for (i=0; i<n; i++)                                    
            {
                for (j=0; j<n; j++)
                    {
                        mas[i][j]=m_min-1 + rand() % m_max+1 ;
                        printf("%5d",mas[i][j]);
                    }
                printf("\n");
            }
            
        for (i=0; i<n/2; i++)
        for (j=0; j<n; j++)
            {
                x=mas[i][j];
                mas[i][j]=mas[n-i+1][n-j+1];
                mas[n-i+1][n-j+1]=x;
            }
        for (i=0; i<n/2; i++)
            {
                x=mas[n/2+1][i];
                mas[n/2+1][i]=mas[n/2+1][n-i+1];
                mas[n/2+1][n-i+1]=x;
            }
 
 
        printf("Resulting massive:\n");
        for (i=0; i<n; i++)
            {
                for (j=0; j<n; j++)
                printf("%5d",mas[i][j]);
                printf("\n");
            }
        return;
    }
Рабочая программа на паскале:
Pascal
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
var a:array[1..20,1..20] of integer;
    n,i,j,x:integer;
begin
repeat
write('3<=n<=15 n=');
readln(n);
until n in [3..15];
writeln('Исходная матрица:');
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=(i-1)*n+j;
    write(a[i,j]:4);
   end;
  writeln;
 end;
for i:=1 to n div 2 do
for j:=1 to n do
 begin
  x:=a[i,j];
  a[i,j]:=a[n-i+1,n-j+1];
  a[n-i+1,n-j+1]:=x;
 end;
//переставим элементы  средней строки
for i:=1 to n div 2 do
 begin
  x:=a[n div 2+1,i];
  a[n div 2+1,i]:=a[n div 2+1,n-i+1];
  a[n div 2+1,n-i+1]:=x;
 end;
writeln('Зеркальное отражение относительно центра:');
for i:=1 to n do
 begin
  for j:=1 to n do
  write(a[i,j]:4);
  writeln;
 end;
end.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2016, 17:36
Ответы с готовыми решениями:

Зеркально отразить элементы матрицы относительно вертикальной оси симметрии
Помогите пожалуйста сделать программу, очень нужно. Задания: 2)Дана квадратная матрица...

Зеркально отразить элементы матрицы относительно горизонтальной оси симметрии
Помогите сделать программу по заданию: Дана квадратная матрица порядка M. Зеркально отразить ее...

Найти индекс центрального элемента массива
Дан массив a, в нем найден центральный элемент х, как найти его индекс в массиве a?

Дана квадратная матрица NxN. Зеркально отразить элементы матрицы относительно главной диагонали
Дана квадратная матрица NxN. Зеркально отразить элементы матрицы относительно главной диагонали.

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

2
Eksees
0 / 0 / 1
Регистрация: 27.05.2016
Сообщений: 13
28.05.2016, 15:37  [ТС] 2
Картинку приложил на всякий случай
0
Изображения
 
Eksees
0 / 0 / 1
Регистрация: 27.05.2016
Сообщений: 13
29.05.2016, 09:34  [ТС] 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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
const int n=5;
void main(void)
 
{
    int i,j,mas[n][n], temp, m_min, m_max, x;
    
    printf("\nEnter input data:");
    printf("\n Minimal element is ");
    scanf("%d", &m_min);
    printf("\n Maximal element is ");
    scanf("%d", &m_max);
    srand(time(NULL));
    printf("Initial massive:\n");
    
    for (i=0; i<n; i++)                                    
        {
            for (j=0; j<n; j++)
                {
                    mas[i][j]=m_min-1 + rand() % m_max+1 ;
                    printf("%5d",mas[i][j]);
                }
            printf("\n");
        }
 
            
    for (i=0; i<n/2; i++)
    for (j=0; j<n; j++)
        {
            x=mas[i][j];
            mas[i][j]=mas[n-i-1][n-j-1];
            mas[n-i-1][n-j-1]=x;
        }
 
    for (i=0; i<n/2; i++)
        {
    x=mas[n/2][i];
    mas[n/2][i]=mas[n/2][n-i-1];
    mas[n/2][n-i-1]=x;
        }
            
    printf("Resulting massive:\n");
    for (i=0; i<n; i++)
        {
            for (j=0; j<n; j++)
            printf("%5d",mas[i][j]);
            printf("\n");
        }
    return;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2016, 09:34

Поменять местами элементы массива симметрично относительно центрального
2. Есть одномерный массив в котором нечетное количество элементов, как поменять местами элементы...

Поменять местами элементы массива, симметричные относительно центрального
Дан одномерный вещественный массив из N элементов (N – нечетное), заданных случайными числами на...

Отразить зеркально элементы массива относительно центра
Дан массив размером n на n, n - нечётное число. Отразить зеркально элементы массива относительно...


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

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

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