矩阵乘积

Description
输入一个m×n的整数矩阵A,再输入一个n×m的整数矩阵B。计算C=A×B。
Input
先输入m和n(m和n均≤10),另起一行后输入一个m×n的整数矩阵A,然后再输入一个n×m的整数矩阵B。每列数据用空格分隔,每行数据用回车分隔。
Output
计算A×B→C,输出矩阵C。
Sample Input
2 3
1 2 3
2 4 6
1 2
3 4
5 6
Sample Output
22 28
44 56

方法一

#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
	int m,n;
	while(scanf("%d %d",&n,&m)!=EOF&&n<=10&&m<=10) 
	{
		int a[11][11];
		int b[11][11];
		int c[11][11];
		int i,j;
		
		for(i=0;i<=10;i++){
	
			for(j=0;j<=10;j++){
		
				a[i][j]=0;
				b[i][j]=0;
				c[i][j]=0;
			}						
		}
		
		for(i=0;i<=n-1;i++){
	
			for(j=0;j<=m-1;j++){
			
				scanf("%d",&a[i][j]);
					
			}
	
		}
		
		for(i=0;i<=m-1;i++){
	
			for(j=0;j<=n-1;j++){
			
				scanf("%d",&b[i][j]);
					
			}
	
		}
		
		int k;
		
//		
//		for(i=0;i<=n-1;i++){
//	
//			for(j=0;j<=m-1;j++){
//				c[i][j]=c[i][j]+b[j][i]*a[i][j];
//					
//			}
//	
//		}
//	
		
		for (i = 0; i<n; i++)            //矩阵a与矩阵b相乘  
			{
				for (j = 0; j < n; j++)
				{
					c[i][j] = 0;
					for (k = 0; k < m; k++)
					c[i][j] += a[i][k] * b[k][j];
				}	
		}	
 
		for (i = 0; i < n; i++)      //输出矩阵c  
		{
			for (j = 0; j < n-1; j++)
			{
				printf("%d ", c[i][j]);
				
			}
			printf("%d\n",c[i][j]);
		}	
			
		
		
		
		
		
		} 
	return 0;
}

方法二

#include<stdio.h>  
#include<iostream>  
using namespace std;
 
#define X 3  
#define Y 2  
#define Z 4  
int main()
{
	int i, j, k;
	int a[X][Y], b[Y][Z], c[X][Z];
 
	for (i = 0; i < X; i++)     //输入矩阵a,3行2列  
		for (j = 0; j < Y; j++)
			scanf_s("%d", &a[i][j]);
 
	for (i = 0; i < Y; i++)     //输入矩阵b,2行4列  
		for (j = 0; j < Z; j++)
			scanf_s("%d", &b[i][j]);
 
	for (i = 0; i < X; i++)     //初始化矩阵c,3行4列  
		for (j = 0; j < Z; j++)
			c[i][j] = 0;
 
	for (i = 0; i<X; i++)            //矩阵a与矩阵b相乘  
		for (j = 0; j < Z; j++)
		{
			c[i][j] = 0;
			for (k = 0; k < Y; k++)
				c[i][j] += a[i][k] * b[k][j];
		}
 
	for (i = 0; i < X; i++)      //输出矩阵c  
		for (j = 0; j < Z; j++)
			printf("%3d", c[i][j]);
 
	system("pause");
	return 0;
}
全部评论

相关推荐

11-07 13:31
怀化学院 Java
勇敢牛牛不怕难:又疯一个
点赞 评论 收藏
分享
10-25 00:32
香梨想要offer:感觉考研以后好好学 后面能乱杀,目前这简历有点难
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务