C语言每日练习题——No.23,矩阵相等判定

题目链接:

矩阵相等判定_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/2f058b1e89ae43f7ab650c0fd0b71fa8?tpId=107&difficulty=&judgeStatus=&tags=&title=105&gioEnter=menu

解题思路:

1. 矩阵相等的条件是同型,即行数与列数都相等

而且对应位置的元素相等

所以不能通过比较俩个数组的和是否相等来判断这俩个矩阵是否相等

也不能通过中间变量的方式去比较,

因为俩个矩阵中只要有一个对应的数字不同,则俩个矩阵就不同

2. 因为这俩个矩阵呢个的行数与列数相同,所以可以通过遍历来比较俩个矩阵是否相同

3. 当 return 0 出现在子程序函数中,无论这个子程序函数嵌套了多少层内层函数,

当执行到 return 0 这行代码时,

它都会返回至主调函数,即 main ( ) 函数

从而导致整个程序结束,子程序后面的代码也就不会被执行

答案代码:

#include <stdio.h>
int main ()
{
    int data1 = 0,data2 = 0;
    scanf("%d %d",&data1,&data2);

   /*  int num = 0,i = 0;
    for (i = 0;i < 2*data1;i++)
    {
        int j = 0;
        for (j = 0;j < data2;j++) //这种输入方式在此题目中不太适用
        {
            scanf("%d ",&num);
        }       
    }
    */

    int i = 0;
    int num[10][10] = {0};
    int num2[10][10] = {0};
    for (i = 0;i < data1;i++)
    {
        int j = 0;
        for (j = 0;j < data2;j++)
        {
            scanf("%d ",&num[i][j]);
        }
    }
    int k = 0;
    for (k = 0;k < data1;k++)
    {
        int j = 0;
        for (j = 0;j < data2;j++)
        {
            scanf("%d ",&num2[k][j]);     
        }
    }     //以上是输入
    
    int p = 0;
    for (p = 0;p < data1;p++)
    {
        int j = 0;
        for (j = 0;j < data2;j++)
        {
            if (num[p][j] != num2[p][j]) //遍历比较
            {
                printf("No");
                return 0; //注意这里return 0的妙用
            }
        }
    }
    printf("Yes");
    return 0;
}

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值