c语言实现逻辑矩阵的运算

矩阵是线性代数里面的最重要的知识。虽然现在还没开始学这门课程,但是在离散数学中已经接触到它了。在集合论部分用来关系运算。

 今天就来用代码实现一下这个运算吧。

#include<stdio.h>
#define MAX 100//利用定义宏开数组 
int n1,m1;//参与运算的 矩阵a的行数n1 列数m1 
int n2,m2;//参与运算的 矩阵b的行数n2 列数m2 
int a[MAX][MAX];//参与运算的 矩阵a
int b[MAX][MAX];//参与运算的 矩阵b
int c[MAX][MAX];//用来储存运算结果的矩阵 
int main(){
	//输入矩阵a,b的行列数
	scanf("%d %d",&n1,&m1); 
	scanf("%d %d",&n2,&m2);
	//如果第一个矩阵的列数与第二个矩阵的行数不等则无法计算 
	if(m1!=n2){
		printf("错误");
	}
	else{
		//输入矩阵a,b的值 
		int i,j;
		printf("输入矩阵1\n");
		for(i=0;i<n1;i++){ 
			for(j=0;j<m1;j++){
				scanf("%d",&a[i][j]);
			}
		}
		printf("输入矩阵2\n");
		for(i=0;i<n2;i++){
			for(j=0;j<m2;j++){
				scanf("%d",&b[i][j]);
			}
		}
	    int k;
	    for(i=0;i<n1;i++){
	    	for(j=0;j<m1;j++){//矩阵a第i行与矩阵第j列运算 
	    		for(k=0;k<m2;k++){//k的改变实现 矩阵a[i][k]与b[k][j]的运算 
	    		c[i][j]=c[i][j]||(a[i][k]&&b[k][j]);//将结果储存在结果矩阵中 
				}
			}
		}
		//输出结果矩阵 
		printf("结果:\n");
		for(i=0;i<n1;i++){
			for(j=0;j<m2;j++){
				printf("%d\t",c[i][j]);
			}
			printf("\n");
		}	
	}
		return 0;
}

如果想实现一般矩阵的运算的话,就将运算那一步的逻辑与(&&)和逻辑或(||)分别替换为乘(*)除(/),这样就可以实现一般矩阵的运算喽。

(好久没写代码了,今天还是应离散老师的要求做了这个程序,特地来水一下博客)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值