我们有两个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();
}
答案 0 :(得分:0)
如果问题涉及int a[4][4]
形式的矩阵,
你可以遍历它们并比较它们的元素。然后,如果它们匹配 - 使用相同的索引将它们放在另一个矩阵中。如果它们不匹配 - 您可以简单地将0作为新矩阵的相应元素的值。