C语言编程判断两个矩阵是否相等(n阶矩阵)

主要利用二维数组的模型来存储矩阵

判断时一一比较,若有一对元素不相同,则矩阵不相同

源代码:

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int a[100][100], b[100][100];
    int n, i, m;
    printf("请输入要比较的矩阵行列数\n");
    scanf("%d", &n);
    printf("请输入第一个矩阵的元素\n");
    for (i = 0; i <= n - 1;i++)
    for (m = 0; m <= n - 1; m++)
        scanf("%d",&a[i][m]);
    printf("请输入第二个矩阵的元素\n");
    for (i = 0; i <= n - 1; i++)
    for (m = 0; m <= n - 1; m++)
        scanf("%d", &b[i][m]);
    printf("输入的是一个%d阶矩阵\n两个矩阵为:\n", n);
    for (i = 0; i <= n - 1; i++)
    for (m = 0; m <= n - 1; m++)
    {
        printf("%4d", a[i][m]);
        if (m == (n - 1))
            printf("\n");
    }
    printf("-------------------------------------------\n");
    for (i = 0; i <= n - 1; i++)
    for (m = 0; m <= n - 1; m++)
    {
        printf("%4d", b[i][m]);
        if (m == (n - 1))
            printf("\n");
    }
    printf("-------------------------------------------\n");
    for (i = 0; i <= n - 1; i++)
    for (m = 0; m <= n - 1; m++)
    {
        if (a[i][m] != b[i][m])//是否相等判断条件
        {
            printf("输入的两个矩阵不相同\n");
            system("pause");
            return 0;
        }
    }
    printf("输入的两个矩阵相同\n");
    system("pause");
    return 0;

}

运行结果:
请输入要比较的矩阵行列数
3
请输入第一个矩阵的元素
1 2 3 4 5 6 7 8 9
请输入第二个矩阵的元素
1 2 3 4 5 6 7 8 8
输入的是一个3阶矩阵
两个矩阵为:
1 2 3
4 5 6
7 8 9



1 2 3
4 5 6
7 8 8



输入的两个矩阵不相同
请按任意键继续. . .

原文地址:https://blog.51cto.com/14232799/2366521

时间: 2024-08-02 17:42:31

C语言编程判断两个矩阵是否相等(n阶矩阵)的相关文章

matlab 判断两个矩阵是否相等

数学意义的相等 all(A(:) == B(:)) isequal(A, B) 但须注意的是:B = A,未必能保证 isequal(A, B)返回真,因为如果 A 中包含NaN,因为按照定义,NaN ~= NaN >> A = [1, NaN] >> B = A >> isequal(A, B) 0 >> NaN == NaN 0 1 2 3 4 5 6 7 浮点数相等 对于浮点数矩阵,判断两个矩阵是否精确相等意义不大,真正有意义的比较是比较两个矩阵是否足

c语言编程求两个整数的最大公约数(两种方法)

第一种(for循环) #include <stdio.h> #include <stdlib.h> int main() { int i, min, k, a, b; printf("请输入两个整数:\n"); scanf("%d%d", &a, &b); if (a>b)//此处if else语句可以删除(只是为了少执行几步程序) min = b; else min = a; for (i = min; i>0;

c语言判断两个矩阵是否相等(行列相同的矩阵)

#include<stdio.h>void input(int n, int m, int a[20][20])//输入矩阵元素{int i, j;for (i = 0; i < n; i++){for (j = 0; j < m; j++){scanf("%d", &a[i][j]);}}}void in(int n, int m, int b[20][20])//输入另一个矩阵元素{int i, j;for (i = 0; i < n; i++

C语言编程 求两个数的平均值方法(三种方法)

第一种方法是最常见的average=(a + b) / 2这种方式,求两个数的平均值 第二种方法是当 a<b 时averag=a+(b-a)/2 这里着重介绍的是第三种方法 average=(a&b) + (a^b)>>1 推导过程如下a + b = (a&b) 2 + (a^b)) --->average=((a&b)2+(a^b))/2 ---->average=(a&b) + (a^b)>>1 eg:两个数为15和515二进制

c语言:判断两个数组是否有相同的元素

#include<stdio.h> int main() { int i = 0; int j = 0; int arr1[] = {1,2,3,4,5}; int arr2[] = {1,2,7,4,9}; for (i = 0; i < sizeof(arr1) / sizeof(arr1[0]); i++) { for (j = 0; j < sizeof(arr2) / sizeof(arr2[0]); j++) { if (arr1[i] == arr2[j]) { pr

C语言编程的两个工具:valgrind和core

检查内存泄漏: valgrind --leak-check=full ./ecox_rws_helper 来检查内存泄漏 程序崩溃看错误: ulimit -c unlimited 然后执行程序,会在当前目录下生成一个文件,如:core.3945 再使用gdb看错误:gdb ./ecox_rws_helper ./core.3945 在gdb中输入where可以看到更详细的错误

C语言——结构体数组的使用案例(如何判断两个矩形是否相交,其中一个是否包含在另外一个里面,点是否在矩形中)

Rect.h struct CPoint { float x; float y; }; typedef struct CPoint CPoint; struct CSize { float width; float height; }; typedef struct CSize CSize; struct CRect { CPoint origin; CSize size; }; typedef struct CRect CRect; //判断两个矩形是否相交 BOOL isIntersecti

编程之美---判断两个链表是否相交

首先,判断一个链表是否有环? 对于这个问题:可以用两个指针,刚开始都指向头节点,然后一个指针每次向后移一步,另一个指针每次向后移两步,如果最后移两步的指针为空时,说明无环,如果最后两个指针相等,说明有环.如果把第一指针看成静止,则相当于第二个每次走一步,所以在那个环上时,是一定能相遇的. 如何找到这个链表环的入口? 当这两个指针相遇后,把第一个指针移向头,两个指针每次都只移一步,再次相等时,就是环的入口.证明:设环上相遇位置为距离环入口处P,入口处前有M个节点,,环肾功能有N个节点,从入口处开始

C语言强化(七)链表相交问题_4 判断两个有环链表是否相交

上一节结束后,我们已经可以判断链表是否有环了,如果无环,那么按照前两节所讲的方法去判断链表是否相交以及获取相交结点,如果有环呢?怎么判断是否相交? 题目 给出俩个单向链表的头指针,比如 h1,h2,判断这俩个链表是否相交 解题步骤 判断两个[无环]链表是否相交 找到两个[无环]链表的相交结点 判断链表是否带环 判断两个[有环]链表是否相交 找到两个[有环]链表的相交结点 思路 对于有环的链表,只要它们相交,则带环的那一段必定完全重复.所以我们只需要在链表一上找到环上的一个结点,判断该结点是否在链