题目链接:
解题思路:
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;
}