需要注意的是a[n][m]上的数字,带入数字后发现是成立的
#include<bits/stdc++.h> using namespace std; int a[110]; int b[110]; int main() { int n,m; int ss=0; int s1=0,s2=0; scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) { scanf("%d",&a[i]); s1^=a[i]; } for(int i=1;i<=m;i++) { scanf("%d",&b[i]); s2^=b[i]; } if(s1!=s2) { printf("NO\n"); return 0; } printf("YES\n"); for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { if(i<n&&j<m) { printf("0 "); } else if(i==n&&j==m) { printf("%d ",s1^a[n]^b[m]); } else if(i==n&&j<m) { printf("%d ",b[j]); } else if(i<n&&j==m) { printf("%d ",a[i]); } } printf("\n"); } }