Двумерный массив. Сумма первого рядка первой матрицы с последним рядком второй и т. д - C (СИ)

Узнай цену своей работы

Формулировка задачи:

В чем, собственно, заключается проблема. Нужно написать программу для нахождения третьей матрицы с помощью изощренных махинаций приведенных в заголовке, НО, так как программист я очень начинающий, не могу понять (из-за невнимательности или же из-за нехватки знаний), что я сделала не так, что оно неправильно считает. Вот код и то, что получается в итоге:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
#define MAX 10
 
int main ()
 
{
 
SetConsoleOutputCP (1251);
SetConsoleCP (1251);
 
int arr1[MAX][MAX], arr2[MAX][MAX], arr3[MAX][MAX];
int i, j;
 
srand(time(NULL));
printf("\r\n= = = = = = = = = = = = = = = = = = = =\r\n");
printf (" Матрица A [10*10]: \r\n");
printf("= = = = = = = = = = = = = = = = = = = =\r\n\r\n");
 
    for (i = 0; i < MAX; i++)
    {   
        for (j = 0; j < MAX; j++)
            {
                arr1[i][j] = rand()%10;
                printf ("%3d ", arr1[i][j]);
            }
        printf ("\r\n");
    }
    
printf("\r\n= = = = = = = = = = = = = = = = = = = =\r\n");
printf (" Матрица B [10*10]: \r\n");
printf("= = = = = = = = = = = = = = = = = = = =\r\n\r\n");
for (i = 0; i < MAX; i++)
{   
    for (j = 0; j < MAX; j++)
        {
            arr2[i][j] = rand()%10;
            printf ("%3d ", arr2[i][j]);
        }
        printf ("\r\n");
}
 
printf("\r\n= = = = = = = = = = = = = = = = = = = =\r\n");
printf (" Новая матрица C [10*10]: \r\n");
printf("= = = = = = = = = = = = = = = = = = = =\r\n\r\n");
 
for (i = 0; i < MAX; i++)
{
    for (j = 0; j < MAX; j++)
        {   
            arr3[i][j] = arr1[i][j] + arr2[MAX - i][MAX - j];
            printf ("%3d ", arr3[i][j]);
        }
    printf ("\r\n");    
}
    getch ();
    return 0;
}

Решение задачи: «Двумерный массив. Сумма первого рядка первой матрицы с последним рядком второй и т. д»

textual
Листинг программы
arr3[i][j] = arr1[i][j] + arr2[MAX - i][MAX - j];

Объяснение кода листинга программы

В данном коде выполняется сложение двух двумерных массивов, но с некоторыми особенностями:

  1. Переменная i в диапазоне от 0 до MAX (предполагается, что MAX больше 20) используется как индекс для обращения к элементам первого массива arr1 и второго массива arr2.
  2. Для второго массива используется MAX - i как индекс, чтобы обратиться к элементам в обратном порядке (с конца массива).
  3. Результат сложения arr1[i][j] и arr2[MAX - i][MAX - j] сохраняется в элементе arr3[i][j]. В итоге, код выполняет сложение элементов двух массивов, но с условием, что элементы берутся с разных концов массивов.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4 из 5
Похожие ответы