为了账号安全,请及时绑定邮箱和手机立即绑定

计算机小白,正在自学c语言,学到数组,其中有一道题不会做,请大家帮一下忙,谢谢了^ _ ^ :

计算机小白,正在自学c语言,学到数组,其中有一道题不会做,请大家帮一下忙,谢谢了^ _ ^ :

C
阳光下1230 2016-04-09 10:25:48
编写一段程序,求4行3列矩阵 和 3行 4 列矩阵的乘积。各构成元素的值从键盘输入。
查看完整描述

1 回答

已采纳
?
guozhchun

TA贡献103条经验 获得超76个赞

#include <stdio.h>

int  main()
{
	int a[4][3];   // 第一个矩阵,4行3列 
	int b[3][4];   // 第二个矩阵,3行4列 
	int c[4][4];   // 存放计算结果的矩阵,4行4列 
	
	// 读取第一个矩阵的数 
	printf("please input the number of the first matrix:\n");
	for (int i = 0; i < 4; i++)
	    for (int j = 0; j < 3; j++)
	        scanf("%d", &a[i][j]);
	        
	// 读取第二矩阵的数 
	printf("please input the number of the second matrix:\n");
	for (int i = 0; i < 3; i++)
	    for (int j = 0; j < 4; j++)
	        scanf("%d", &b[i][j]);
	        
	/*
	* 计算矩阵相乘。
	* 矩阵相乘的规则:第一个矩阵的第 i 行与第二个矩阵的第 j 列进行向量相乘得到结果矩阵的第 i 行第 j 的值 
	*/ 
	for (int i = 0; i < 4; i++)   // 结果矩阵的行,也可以算是第一个矩阵的行 
	{
		for (int j = 0; j < 4; j++)  // 结果矩阵的列,也可以算是第二个矩阵的列 
		{
			int sum = 0;
			for (int k = 0; k < 3; k++)  // 第一个矩阵的列,同时也是第二个矩阵的行 
				sum += a[i][k] * b[k][j]; // 第一个矩阵的第 i 行与第二个矩阵的第 j 列的向量相乘 
			c[i][j] = sum;
		}
	}
	
	// 输出结果 
	printf("the result is:\n");
	for (int i = 0; i < 4; i++)
	{
		for (int j = 0; j < 4; j++)
		    printf("%d ", c[i][j]);
		printf("\n");
	}
	
	return 0;
}


查看完整回答
3 反对 回复 2016-04-09
  • 阳光下1230
    阳光下1230
    太高兴了,没想到能遇到这么热心,细心,耐心的你,谢谢你,谢谢你,谢谢你,辛苦你啦,祝你天天开心,心情愉悦,我会继续努力的,一起加油吧 ^ _ ^
  • 1 回答
  • 0 关注
  • 1374 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信