Двумерный массив. Сумма первого рядка первой матрицы с последним рядком второй и т. д - 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];
Объяснение кода листинга программы
В данном коде выполняется сложение двух двумерных массивов, но с некоторыми особенностями:
- Переменная
i
в диапазоне от 0 доMAX
(предполагается, чтоMAX
больше 20) используется как индекс для обращения к элементам первого массиваarr1
и второго массиваarr2
. - Для второго массива используется
MAX - i
как индекс, чтобы обратиться к элементам в обратном порядке (с конца массива). - Результат сложения
arr1[i][j]
иarr2[MAX - i][MAX - j]
сохраняется в элементеarr3[i][j]
. В итоге, код выполняет сложение элементов двух массивов, но с условием, что элементы берутся с разных концов массивов.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д