У нас есть две матрицы 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();
}
Матрицы, которые вы использовали в вашем примере, это 4x1, а не 4x4, как описано в вашем вопросе. Не могли бы вы уточнить, имеют ли ваши матрицы форму 'int x [4]' или 'int x [4] [4]' ??? – silvergasp