Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2022, 17:23   #1
IkesIlyaes
 
Регистрация: 18.11.2022
Сообщений: 8
По умолчанию С++ Массивы переделать код (направление)

Код:
#include <stdio.h> 
#define N 2 
 
int main() 
{ 
    int A[2 * N][2 * N], B1[N][N], B2[N][N], B3[N][N], B4[N][N], i, j, k, m; 
  
    printf("Original array\n"); 
    for (i = 0; i < 2 * N; i++) 
    { 
        for (j = 0; j < 2 * N; j++) 
        { 
            printf("A[%d][%d]  =  ", i, j); 
            scanf("%d", &A[i][j]); 
        } 
        printf("\n"); 
    } 
  
    for (i = 0; i < 2 * N; i++) 
    { 
        for (j = 0; j < 2 * N; j++) 
            printf("%d   ", A[i][j]); 
        printf("\n"); 
    } 
  
    //создаем блоки В1..В4 
    for (i = 0; i < N; i++) 
        for (j = 0; j < N; j++) 
            B1[i][j] = A[i][j]; 
  
    for (i = 0; i < N; i++) 
        for (j = N, m = 0; j < 2 * N; j++, m++) 
            B2[i][m] = A[i][j]; 
  
    for (i = N, k = 0; i < 2 * N; i++, k++) 
        for (j = N, m = 0; j < 2 * N; j++, m++) 
            B3[k][m] = A[i][j]; 
  
    for (i = N, k = 0; i < 2 * N; i++, k++) 
        for (j = 0; j < N; j++) 
            B4[k][j] = A[i][j]; 
  
    //собираем блоки в А 
    for (i = 0; i < N; i++) 
        for (j = 0; j < N; j++) 
            A[i][j] = B4[i][j]; 
  
    for (i = 0; i < N; i++) 
        for (j = N, k = 0; j < 2 * N; j++, k++) 
            A[i][j] = B1[i][k]; 
  
    for (i = N, k = 0; i < 2 * N; i++, k++) 
        for (j = N, m = 0; j < 2 * N; j++, m++) 
            A[i][j] = B2[k][m]; 
  
    for (i = N, k = 0; i < 2 * N; i++, k++) 
        for (j = 0; j < N; j++) 
            A[i][j] = B3[k][j]; 
  
    printf("\nRearranged array\n"); 
    for (i = 0; i < 2 * N; i++) 
    { 
        for (j = 0; j < 2 * N; j++) 
            printf("%d   ", A[i][j]); 
        printf("\n"); 
    } 
 
    return 0; 
}
Код был написан для по часовой стрелке, а надо переписать как указано ниже на рисунке

буду рад за помощь.

Новый точечный рисунок.jpg
IkesIlyaes вне форума Ответить с цитированием
Старый 27.11.2022, 17:28   #2
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 735
По умолчанию

Картинку не видно.
Cuprum5 на форуме Ответить с цитированием
Старый 27.11.2022, 17:29   #3
IkesIlyaes
 
Регистрация: 18.11.2022
Сообщений: 8
По умолчанию

Такое должно получится после отредактирования кода

1213213.png

Последний раз редактировалось IkesIlyaes; 27.11.2022 в 17:31.
IkesIlyaes вне форума Ответить с цитированием
Старый 27.11.2022, 17:30   #4
IkesIlyaes
 
Регистрация: 18.11.2022
Сообщений: 8
По умолчанию

Сам код писался для такого расположения

111.JPG
IkesIlyaes вне форума Ответить с цитированием
Старый 27.11.2022, 17:32   #5
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 735
По умолчанию

Ничего не видно из картинок.
Cuprum5 на форуме Ответить с цитированием
Старый 27.11.2022, 17:34   #6
IkesIlyaes
 
Регистрация: 18.11.2022
Сообщений: 8
По умолчанию

Попробую отправить так. Код написан для б, а нужно переписать что бы было для а

https://images.app.goo.gl/aFZPgPhUQ9C3ocx38


Цитата:
Сообщение от Cuprum5 Посмотреть сообщение
Ничего не видно из картинок.
IkesIlyaes вне форума Ответить с цитированием
Старый 27.11.2022, 17:38   #7
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 735
По умолчанию

Как они в варианте а зеркально переворачиваются или просто переместить?
Cuprum5 на форуме Ответить с цитированием
Старый 27.11.2022, 17:41   #8
IkesIlyaes
 
Регистрация: 18.11.2022
Сообщений: 8
По умолчанию

Дана действительная квадратная матрица порядка 2n. Получить новую матрицу, переставляя ее блоки размера n x n. Ну насколько я понимаю они перемещаются


Цитата:
Сообщение от Cuprum5 Посмотреть сообщение
Как они в варианте а зеркально переворачиваются или просто переместить?
IkesIlyaes вне форума Ответить с цитированием
Старый 27.11.2022, 17:55   #9
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 735
По умолчанию

Код:
#include <stdio.h>
#define N 2

int main()
{
    int A[2*N][2*N], B1[N][N], B2[N][N], B3[N][N], B4[N][N], i, j, k, m;

    printf("Original array\n");
    for(i = 0; i < 2*N; i++)
    {
        for(j = 0; j < 2*N; j++)
        {
            //printf("A[%d][%d]  =  ", i, j);
            //scanf("%d", &A[i][j]);
            A[i][j] = rand()%10;
        }
        //printf("\n");
    }

    for(i = 0; i < 2*N; i++)
    {
        for(j = 0; j < 2 * N; j++)
            printf("%d ", A[i][j]);
        printf("\n");
    }

    //создаем блоки В1..В4
    for(i = 0; i < N; i++)
        for(j = 0; j < N; j++)
            B1[i][j] = A[i][j];

    for(i = 0; i < N; i++)
        for(j = N, m = 0; j < 2*N; j++, m++)
            B2[i][m] = A[i][j];

    for(i = N, k = 0; i < 2*N; i++, k++)
        for(j = N, m = 0; j < 2*N; j++, m++)
            B3[k][m] = A[i][j];

    for(i = N, k = 0; i < 2*N; i++, k++)
        for(j = 0; j < N; j++)
            B4[k][j] = A[i][j];

    //собираем блоки в А
    for(i = 0; i < N; i++)
        for(j = 0; j < N; j++)
            A[i][j] = B3[i][j];

    for(i = 0; i < N; i++)
        for(j = N, k = 0; j < 2*N; j++, k++)
            A[i][j] = B4[i][k];

    for(i = N, k = 0; i < 2*N; i++, k++)
        for(j = N, m = 0; j < 2*N; j++, m++)
            A[i][j] = B1[k][m];

    for(i = N, k = 0; i < 2*N; i++, k++)
        for(j = 0; j < N; j++)
            A[i][j] = B2[k][j];

    printf("\nRearranged array\n");
    for(i = 0; i < 2*N; i++)
    {
        for(j = 0; j < 2*N; j++)
            printf("%d ", A[i][j]);
        printf("\n");
    }

    return 0;
}
Cuprum5 на форуме Ответить с цитированием
Старый 27.11.2022, 18:00   #10
IkesIlyaes
 
Регистрация: 18.11.2022
Сообщений: 8
По умолчанию

Спасибо за код.

компилятор правда жалуется на строчку 15

main.cpp: In function ‘int main()’:
main.cpp:15:23: error: ‘rand’ was not declared in this scope
15 | A[i][j] = rand()%10;
| ^~~~


Цитата:
Сообщение от Cuprum5 Посмотреть сообщение
Код:
#include <stdio.h>
#define N 2

int main()
{
    int A[2*N][2*N], B1[N][N], B2[N][N], B3[N][N], B4[N][N], i, j, k, m;

    printf("Original array\n");
    for(i = 0; i < 2*N; i++)
    {
        for(j = 0; j < 2*N; j++)
        {
            //printf("A[%d][%d]  =  ", i, j);
            //scanf("%d", &A[i][j]);
            A[i][j] = rand()%10;
        }
        //printf("\n");
    }

    for(i = 0; i < 2*N; i++)
    {
        for(j = 0; j < 2 * N; j++)
            printf("%d ", A[i][j]);
        printf("\n");
    }

    //создаем блоки В1..В4
    for(i = 0; i < N; i++)
        for(j = 0; j < N; j++)
            B1[i][j] = A[i][j];

    for(i = 0; i < N; i++)
        for(j = N, m = 0; j < 2*N; j++, m++)
            B2[i][m] = A[i][j];

    for(i = N, k = 0; i < 2*N; i++, k++)
        for(j = N, m = 0; j < 2*N; j++, m++)
            B3[k][m] = A[i][j];

    for(i = N, k = 0; i < 2*N; i++, k++)
        for(j = 0; j < N; j++)
            B4[k][j] = A[i][j];

    //собираем блоки в А
    for(i = 0; i < N; i++)
        for(j = 0; j < N; j++)
            A[i][j] = B3[i][j];

    for(i = 0; i < N; i++)
        for(j = N, k = 0; j < 2*N; j++, k++)
            A[i][j] = B4[i][k];

    for(i = N, k = 0; i < 2*N; i++, k++)
        for(j = N, m = 0; j < 2*N; j++, m++)
            A[i][j] = B1[k][m];

    for(i = N, k = 0; i < 2*N; i++, k++)
        for(j = 0; j < N; j++)
            A[i][j] = B2[k][j];

    printf("\nRearranged array\n");
    for(i = 0; i < 2*N; i++)
    {
        for(j = 0; j < 2*N; j++)
            printf("%d ", A[i][j]);
        printf("\n");
    }

    return 0;
}
IkesIlyaes вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переделать кусок программы чтобы массивы сложились правильно. anasttb Помощь студентам 1 01.03.2017 16:18
Переделать программу так,чтобы массив заполнялся символами,потом каждый символ переводился бы в код таблицы ASCII. И в конце сложить эти массивы. anasttb Помощь студентам 1 01.03.2017 09:47
Помогите переделать 2 задачи под динамические массивы (Паскаль) mpegable Помощь студентам 2 27.05.2008 17:32