列表

详情


BC131. 矩阵相等判定

描述

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

原站题解

C 解法, 执行用时: 1ms, 内存消耗: 308KB, 提交时间: 2021-07-26

#include <stdio.h>

int main()
{
    int n,m,flag=1;
    scanf("%d%d",&n,&m);
    int a[n][m],b[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 = 0;
            }
        }
    }
    if(flag)
    {
        printf("Yes");
    }
    else
    {
        printf("No");
    }
    return 0;
}

C 解法, 执行用时: 1ms, 内存消耗: 332KB, 提交时间: 2021-09-08

#include<stdio.h>
int main(){
    int m,n;
    scanf("%d %d",&m,&n);
    int arr1[m][n];
    int arr2[m][n];
    int i,j;
    for(i=0;i<m;i++){
        for(j=0;j<n;j++){
            scanf("%d",&arr1[i][j]);
        }
    }
    int flag=1;
    for(i=0;i<m;i++){
        for(j=0;j<n;j++){
            scanf("%d",&arr2[i][j]);
            if(arr1[i][j]!=arr2[i][j]){
                flag=0;
                break;
            }
        }
    }
    if(flag==1)
        printf("Yes\n");
    else
        printf("No\n");
    return 0;
}

C 解法, 执行用时: 1ms, 内存消耗: 332KB, 提交时间: 2021-09-08

#include<stdio.h>
int main()
{
    int n,m,flag=1;
    scanf("%d%d",&n,&m);
    int arr[2*n][m];
    for(int i=0;i<2*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++)
        {
            if(arr[i][j]==arr[i+n][j])
            {
                flag=1;
            }
            else
            {
                flag=0;
                break;
            }
        }
    }
    if(flag)
    {
        printf("Yes\n");
    }
    else
    {
        printf("No\n");
    }
    return 0;
}

C 解法, 执行用时: 1ms, 内存消耗: 332KB, 提交时间: 2021-08-01

#include <stdio.h>
int main()
{
    long arr[20] = {0};
    long arr1[20] = {0};
    int n = 0;
    int m = 0;
    scanf("%d %d", &n, &m);
    int j = 0;
    for (j = 0; j < n*m; j++)
    {
        scanf("%d", &arr[j]);
    }
    for (j = 0; j < n*m; j++)
    {
        scanf("%d", &arr1[j]);
    }
    int flag = 1;
    int i = 0;
    for (i = 0; i < n*m; i++)
    {
        if (arr[i] != arr1[i])
        {
            flag = 0;
            break;
        }
    }
    if (flag == 1)
        printf("Yes\n");
    else
        printf("No\n");
    return 0;
}

C 解法, 执行用时: 1ms, 内存消耗: 336KB, 提交时间: 2021-08-01

//矩阵相等判断
#include<stdio.h>

int main()
{
	int n, m = 0;
    int flag = 1;
	scanf("%d %d", &n, &m);
    int a[10][10] = { 0 };
    int b[10][10] = { 0 };

    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 = 0;
            }
        }
    }
    if (flag)
    {
        printf("Yes\n");
    }
    else
    {
        printf("No\n");
    }

	return 0;
}

上一题