Нахождение перекрытия между двумя матрицами
У нас есть две матрицы 4x4, каждая из которых имеет свои собственные исходные и конечные координаты, и мы можем двигаться только горизонтально, а затем вертикально, чтобы достичь цели (например, если вы хотите перейти от (0,0) к (2,3), вы можете пройти через маршрут (0,0),(0,1),(0,2),(0,3),(1,3),(2,3)). У меня нет проблем с печатью маршрутов, но я хочу видеть наложение между этими двумя матрицами. Ты хоть представляешь, как я могу это сделать?
Вот код показа маршрута:
#include <iostream>
#include <conio.h>
#include <stdio.h>
using namespace std;
int main() {
int a[4] = { 0,1,2,3 };
int b[4] = { 0,1,2,3 };
int x, y, z, t; cout<<"Enter your source coordination : " ;
cin>>x>>y;
cout<<"Enter your destination coordination : " ;
cin>>z>>t;
if (x == z&&y == t)
printf("(%d,%d)",x,y);
else {
if (x <= z&&y <= t) {
for (; a[y] <= t; a[y]++) printf("(%d,%d)",x,a[y]);
for (; b[x] < z; b[x]++) printf("(%d,%d)",b[x]+1,t); }
if (x <= z&&y >= t) {
for (; a[y] >= t; a[y]--) printf("(%d,%d)",x,a[y]);
for (; b[x] < z; b[x]++) printf("(%d,%d)",b[x]+1,t); }
if (x > z&&y > t) {
for (; a[y] >= t; a[y]--) printf("(%d,%d)",x,a[y]);
for (; b[x] > z ; b[x]--) printf("(%d,%d)",b[x]-1,t); }
if (x > z&&y < t) {
for (; a[y] <= t; a[y]++) printf("(%d,%d)",x,a[y]);
for (; b[x] > z; b[x]--) printf("(%d,%d)",b[x]-1,t);
}
}
_getch();
}
1 ответ
Если вопрос касается матриц вида int a[4][4]
Вы можете просмотреть их и сравнить их элементы. Затем, если они совпадают - поместите их в другую матрицу, используя те же индексы. Если они не совпадают - вы можете просто поместить 0 в качестве значения для соответствующего элемента новой матрицы.