c语言之矩阵

1.矩阵乘积

#include<stdio.h>
#include<string.h>
#define N 2  //矩阵1行数
#define M 3  //矩阵1列数  矩阵2行数
#define P 2  //矩阵2列数
int main()
{
	//矩阵1列数==矩阵2行数
	int i, j, k, a[N][M], b[M][P], c[N][P], s;
	//第一个矩阵2行3列
	printf("input matrix A[2][3]\n");
	for (i = 0; i < N; i++)
		for (j = 0; j < M; j++)
			scanf("%d", &a[i][j]);
	//第二个矩阵3行2列
	printf("input matrix B[3][2]\n");
	for (i = 0; i < M; i++)
		for (j = 0; j < P; j++)
			scanf("%d", &b[i][j]);
	//计算方式:矩阵1的行*矩阵的列
	//最终得到矩阵为N行P列
	for (i = 0; i < N; i++)      //每一行
	{
		for (j = 0; j < P; j++)  //每一列
		{
			for (k = 0, s = 0; k < M; k++)   //每一列的组成
				s += a[i][k] * b[k][j];      //a的i行 b的j列固定
			c[i][j] = s;                     //k访问a的行 b的列
		}
	}
	//得到的矩阵2行2列
	printf(" matrix C[2][2]\n");
	for (i = 0; i < N; i++)
	{
		for (j = 0; j < P; j++)
			printf("%6d", c[i][j]);
		printf("\n");
	}
	return 0;
}

在这里插入图片描述

2.矩阵转置

#include<stdio.h>
#include<string.h>
#define N 2
#define M 3
#define P 2
int main() 
{
	int i, j, a[N][M], b[M][P];
	for (i = 0; i < N; i++) 
	{
		for (j = 0; j < M; j++) 
			scanf("%d", &a[i][j]);		
	}
	for (i = 0; i < M; i++)         //输入2行3列
	{                               //转换以3行2列去访问
		for (j = 0; j < N; j++)     //并且i j转换改变a的元素排列
			b[i][j] = a[j][i];		
	}
	for (i = 0; i < M; i++)
	{
		for (j = 0; j < N; j++) 
			printf("%d ", b[i][j]);		
		printf("\n");
	}
	return 0;
}

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿猿收手吧!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值