首页 > 试题广场 >

矩阵相等判定

[编程题]矩阵相等判定
  • 热度指数:25774 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

KiKi得到了两个nm列的矩阵,他想知道两个矩阵是否相等,请你回答他。(当两个矩阵对应数组元素都相等时两个矩阵相等)。


输入描述:

第一行包含两个整数n和m,表示两个矩阵包含n行m列,用空格分隔。

从2到n+1行,每行输入m个整数(范围-231~231-1),用空格分隔,共输入n*m个数,表示第一个矩阵中的元素。

从n+2行到2n+1,每行输入m个整数(范围-231~231-1),用空格分隔,共输入n*m个数,表示第二个矩阵中的元素。
1 < n,m < 10


输出描述:
一行,如果两个矩阵相等输出"Yes"并换行,否则输出"No"并换行。
示例1

输入

2 2
1 2
3 4
1 2
3 4

输出

Yes
int main(){
    int n, m;
    int arr[10][10];
    int brr[10][10];
    scanf("%d %d", &n, &m);
    for(int i = 0; i < n; i++){
        for(int j = 0; j < m; j++){
            scanf("%d ", &arr[i][j]);
        }
    }
    int p = 1;
    for(int i = 0; i < n; i++){
        for(int j = 0; j < m; j++){
            scanf("%d ", &brr[i][j]);
            if(brr[i][j] != arr[i][j]){
                p = 0;
                break;
            }
        }
    }
    if(p != 0)
        printf("Yes\n");
    else
        printf("No\n");
    return 0;
}

发表于 2021-12-03 11:10:48 回复(0)
#include<stdio.h>
int main()
{
    int n,m,i,j,flag=1;
    int a[10][10],b[10][10];
    scanf("%d %d",&n,&m);
    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
            scanf("%d",&a[i][j]);
        }
    }
    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
            scanf("%d",&b[i][j]);
        }
    }
     for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
            if(a[i][j]!=b[i][j])
                flag=0;
        }
    }
    if(flag)
    {
        printf("Yes\n");
    }
    else
    {
        printf("No\n");
    }
    return 0;
}
发表于 2021-07-14 19:29:05 回复(0)
import java.util.*;
import java.io.*;
public class Main{
	public static void main(String[] args) throws IOException{
 		Scanner input = new Scanner(System.in);
        int row = input.nextInt();
        int col = input.nextInt();
        int totalNumOfElement = row * col;
        int[] data = new int[2 * totalNumOfElement];
        for(int i = 0; i < data.length; i++){
            data[i] = input.nextInt();
        }
        boolean flag = true;
        for(int i = 0, j = totalNumOfElement; i < totalNumOfElement; i++, j++){
            if(data[i] != data[j]){
                flag = false;
            }
        }
        System.out.println(flag ? "Yes" : "No");
    }   
}

发表于 2021-07-13 02:01:27 回复(0)
#include<stdio.h>
int main(){
    int m,n;
    scanf("%d %d",&m,&n);
    int a[m*2][n];
    for(int i=0;i<2*m;i++)
        for(int j=0;j<n;j++)
            scanf("%d",&a[i][j]);
    for(int i=0;i<m;i++)
        for(int j=0;j<n;j++)
        if(a[i][j]!=a[i+m][j]){
            printf("No");
            return 0;
        }
    printf("Yes");
    return 0;
}

发表于 2021-04-10 14:44:36 回复(0)
#include <stdio.h>
int main()
{
    int a[15][15],b[15][15];
    int i,j,n,m,flag=1;
    scanf("%d%d",&n,&m);
    for(i=0;i<n;i++){
        for(j=0;j<m;j++){
            scanf("%d",&a[i][j]);
        }
    }
    for(i=0;i<n;i++){
        for(j=0;j<m;j++){
            scanf("%d",&b[i][j]);
            if(a[i][j]!=b[i][j]) flag=0;
        }
    }
    if(flag) printf("Yes\n");
    else printf("No\n");
}

发表于 2020-04-10 18:42:58 回复(0)
#include <stdio.h>
#include<stdlib.h>
int main() {
    int m,n,a[15][15],b[15][15];
    scanf("%d %d",&m,&n);
    for(int i=0;i<m;i++){
        for(int j=0;j<n;j++)scanf("%d",&a[i][j]);//输入第一个矩阵
    }
    for(int i=0;i<m;i++){
        for(int j=0;j<n;j++){
            scanf("%d",&b[i][j]);//输入第二个矩阵
            if(b[i][j]!=a[i][j]){
                printf("No\n");
                exit(0);//若当前输入的值与第一个矩阵不同,则输出No,且立刻退出程序
            }
        }
    }
    printf("Yes");//若没有被判定为No,则输出Yes
    return 0;
}

编辑于 2024-01-14 09:48:30 回复(0)
#include<stdio.h>
int main()
{
    int arr[10][10] = {0},input,n,m;
    scanf("%d %d",&n,&m);
    for(int i = 0;i < n;i++)
    {
        for(int j = 0;j < m;j++)
            scanf("%d",&arr[i][j]);
    }
    for(int i = 0;i < n;i++)
    {
        for(int j = 0;j < m;j++)
        {
            scanf("%d",&input);
            if(input != arr[i][j])
            {
                printf("No\n");
                return 0;
            }
        }
    }
    printf("Yes\n");
    return 0;
}

发表于 2022-08-04 14:41:15 回复(0)
#include<stdio.h>
int main()
{
    int n , m , a[10][10] , b[10][10] , flag = 0;
    scanf("%d %d", &n , &m);
    for(int i = 0 ; i < n ; i++)
        for(int j = 0 ; j < m ; j++)
            scanf("%d" , & a[i][j]);
    for(int i = 0 ; i < n ; i++)
        for(int j = 0 ; j < m ; j++)
            scanf("%d" , & b[i][j]);
    for(int i = 0 ; i < n ; i++)
        for(int j = 0 ; j < m ; j++)
        {
            if(a[i][j] == b[i][j]) flag = 1;
            else flag = 0;
        }
    if(flag == 1) printf("Yes\n");
        else printf("No\n");
    return 0;
}

发表于 2022-06-28 21:27:32 回复(0)
#include <stdio.h>
int main()
{
    int n = 0;
    int m = 0;
    scanf("%d%d", &n, &m);
    int a1[n][m];
    int a2[n][m];
    int i = 0;
    int j = 0;
    for(i=0; i<n; i++)
   {
        for(j=0; j<m; j++)
       {
            scanf("%d", &a1[i][j]);
       }
   }
   for(i=0; i<n; i++)
   {
        for(j=0; j<m; j++)
       {
            scanf("%d", &a2[i][j]);
       }
   }
   for(i=0; i<n; i++)
   {
       for(j=0; j<m; j++)
       {
            if(a1[i][j]!=a2[i][j])
            {
                 printf("No\n");
                 return 0; 
            }
       }
   }
   printf("Yes\n");
    return 0;
}

发表于 2021-12-29 17:43:42 回复(0)
#include<stdio.h>
int main(){
    int n,m,a[200],i;
    while(~scanf("%d %d",&n,&m)){
        for(i=0;i<2*n*m;i++)
            scanf("%d",&a[i]);
        for(i=0;i<n*m;i++){
            if(!(a[i]==a[n*m+i])) {printf("No\n");break;}
        }if(!(i-n*m)) printf("Yes\n");
    }
}

发表于 2021-06-04 18:59:27 回复(0)
#include<stdio.h>

int main()
{
    int n,m;
    scanf("%d %d",&n,&m);
    int arr[2][n][m];
    for(int i=0;i<2;i++)
    {
        for(int j=0;j<n;j++)
        {
            for(int k=0;k<m;k++)
            {
                scanf("%d",&arr[i][j][k]);
            }
        }
    }
    for(int j=0;j<n;j++)
    {
        for(int k=0;k<m;k++)
        {
            if(arr[0][j][k]!=arr[1][j][k])
            {
                printf("No\n");
                return 0;;
            }
        }
    }
    printf("Yes\n");
    return 0;
}

编辑于 2024-04-07 17:59:42 回复(1)
#include <stdio.h>

int main() {
    int a, b;
    int sum = 0;
    scanf("%d %d", &a, &b);
    int num = a * b;
    int x[num], y[num];
    for (int i = 0; i < num; i++) {
        scanf("%d", &x[i]);
    }
    for (int i = 0; i < num; i++) {
        scanf("%d", &y[i]);
    }
    for (int i = 0; i < num; i++) {
        if (x[i] == y[i]) sum++;
    }
    if (sum == num) printf("Yes\n");
    else printf("No\n");
    return 0;
}

发表于 2023-03-22 12:18:32 回复(0)
#include<stdio.h>
int main(void) {
    int n, m;
    int** p;
    int** q;
    int x, y;
    int a = 0;
    scanf("%d %d", &n, &m);
    p = (int**)malloc(n);
    for (int i = 0; i < n; i++) {
        p[i] = (int*)malloc(m);
        for (int j = 0; j < m; j++) {
            scanf("%d", &p[i][j]);
        }
        getchar();
    }
    q = (int**)malloc(n);
    for (int i = 0; i < n; i++) {
        q[i] = (int*)malloc(m);
        for (int j = 0; j < m; j++) {
            scanf("%d", &q[i][j]);
        }
        getchar();
    }
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            if (p[i][j] == q[i][j]) {
                a++;
            }
        }
    }
    if (a == (n * m)) {
        printf("Yes");
    } else {
        printf("No");
    }


    return 0;
}

发表于 2022-05-15 21:57:48 回复(0)
#include<bits/stdc++.h>
using namespace std;
int main()
{
    int hang,lie;
    cin>>hang>>lie;
    int arr_a[hang][lie],a_num;
    int arr_b[hang][lie],b_num;
    int flag = 1;
    for(int i = 0;i<hang;i++){
        for(int j = 0;j<lie;j++){
            cin>>a_num;
            arr_a[i][j] = a_num;
            
        }
    }
    for(int i = 0;i<hang;i++){
        for(int j = 0;j<lie;j++){
            cin>>b_num;
            arr_b[i][j] = b_num;
            
        }
    }
    for(int i = 0;i<hang;i++){
        for(int j = 0;j<lie;j++){
           if(arr_a[i][j] != arr_b[i][j]){
               flag = 0;
           }
        }
    }
    if(flag == 1){
        cout<<"Yes"<<endl;
    }
    else
        cout<<"No"<<endl;
        
        
        
        
        
        
        
        
        
        
}

发表于 2020-10-02 21:12:14 回复(0)
#include <stdio.h>

int main() {
    int n,m,i,j,k,t=0;
    int sum1=0,sum2=0;
    scanf("%d%d",&n,&m);
    int a[100][100]={0};
    int b[100][100]={0};
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            scanf("%d",&a[i][j]);
            sum1=sum1+a[i][j];
        }
    }
    for(int k=0;k<n;k++)
    {
        for(int t=0;t<m;t++)
        {
            scanf("%d",&b[k][t] );
            sum2=sum2+b[k][t];
        }
    }
    if(sum1-sum2==0)
    {
        printf("Yes\n");
    }
    else{
        printf("No\n");
    }
    return 0;
}
发表于 2025-02-23 18:32:48 回复(0)
#include<stdio.h>
void My_scanf(int arr[10][10],int n,int m)
{
    int i = 0;
    int j = 0;
    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
           scanf("%d ",&arr[i][j]);
        }
    }
}
int Compare(int arr1[10][10],int arr2[10][10],int n, int m)
{
    int i = 0;
    int j = 0;
    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
           if(arr1[i][j]!=arr2[i][j])
           {
              return 0;
           }
        }
    }
    return 1;
}
int main()
{
    int n = 0;
    int m = 0;
    scanf("%d %d",&n,&m);
    int arr1[10][10];
    int arr2[10][10];
    My_scanf(arr1,n,m);
    My_scanf(arr2,n,m);
    int ret = Compare(arr1,arr2,n,m);
    if(ret==1)
    printf("Yes\n");
    else
     printf("No\n");
    return 0;
}

发表于 2024-12-31 11:08:44 回复(0)
#include <stdio.h>
#include <stdlib.h>

int main() {
int a, b;
int c;
int count = 0;
while (scanf("%d %d", &a, &b) != EOF) { // 注意 while 处理多个 case
int** arry = (int**)malloc(a * sizeof(int*)); //指针数组
int** arry1 = (int**)malloc(a * sizeof(int*));
for (int i = 0; i < a; i++) {
arry[i] = (int*)malloc(b * sizeof(int));
}
for (int i = 0; i < a; i++) {
arry1[i] = (int*)malloc(b * sizeof(int));
}

for (int i = 0; i < a; i++) {
for (int j = 0; j < b; j++) {
scanf("%d ", &c);
arry[i][j] = c;
}
}
for (int i = 0; i < a; i++) {
for (int j = 0; j < b; j++) {
scanf("%d ", &c);
arry1[i][j] = c;
}
}
for (int i = 0; i < a; i++) {
for (int j = 0; j < b; j++) {
if (arry[i][j]== arry1[i][j]) {
count++;
}
}
}
if (count == a * b) {
printf("Yes");
} else {
printf("No");
}
}
return 0;
}
发表于 2024-11-23 23:51:27 回复(0)
n,m=map(int,input().split())

arr1=[]
arr2=[]
for i in range(n):
    arr1=list(map(int,input().split()))

for i in range(n):
    arr2=list(map(int,input().split()))

if arr1 == arr2:
    print('Yes')
else:
    print('No')

发表于 2024-10-23 15:45:08 回复(0)
#include <stdio.h>

int main() {
    int n,m;
    scanf("%d %d",&n,&m);
    int i,j,flag=0;
    int array_1[n][m];
    int array_2[n][m];
    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
            scanf("%d",&array_1[i][j]);
        }
    }
    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
            scanf("%d",&array_2[i][j]);
        }
    }
    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
            if(array_1[i][j]!=array_2[i][j])
            {
                flag=1;
            }
        }
    }
    if(flag==1)
    {
        printf("No\n");
    }
    else{
        printf("Yes\n");
    }
    return 0;
}

发表于 2024-10-02 10:58:01 回复(0)
def addarr(ar): 
    for i in range(1, n + 1):
        arr1 = list(map(int, input().split()))
        ar.append(arr1)

if __name__  == "__main__":
    n, m = list(map(int, input().split()))
    new = []
    new1 = []
    addarr(new)
    addarr(new1)
    print("Yes" if new == new1 else 'No')

发表于 2024-09-28 01:35:54 回复(0)