ALGO-86矩阵乘法
来源:互联网 发布:李知爱情斑马线 编辑:程序博客网 时间:2024/05/18 00:05
/*
问题描述
输入两个矩阵,分别是m*s,s*n大小。输出两个矩阵相乘的结果。
输入格式
第一行,空格隔开的三个正整数m,s,n(均不超过200)。
接下来m行,每行s个空格隔开的整数,表示矩阵A(i,j)。
接下来s行,每行n个空格隔开的整数,表示矩阵B(i,j)。
输出格式
m行,每行n个空格隔开的整数,输出相乘後的矩阵C(i,j)的值。
样例输入
2 3 2
1 0 -1
1 1 -3
0 3
1 2
3 1
样例输出
-3 2
-8 2
提示
矩阵C应该是m行n列,其中C(i,j)等于矩阵A第i行行向量与矩阵B第j列列向量的内积。
例如样例中C(1,1)=(1,0,-1)*(0,1,3) = 1 * 0 +0*1+(-1)*3=-3
*/
#include <stdio.h>
void shuru( int a,int b,int c[a][b]) ;
void js( int m,int n ,int s , int jz1[m][s] , int jz2[s][n] , int jz3[m][n] ) ;
void shuchu( int n, int m, int [m][n]) ;
void csh( int m,int n,int [m][n]) ;
int main(void)
{
int m,s,n;
scanf("%d%d%d",&m,&s,&n);
int jz1[m][s] ;
int jz2[s][n] ;
int jz3[m][n] ;
csh(m,n,jz3) ;
shuru( m ,s ,jz1) ;
shuru( s, n , jz2) ;
js( m , s , n , jz1 , jz2 , jz3 );
shuchu( m , n , jz3 ) ;
return 0;
}
void csh(int m, int n, int jz3[][n])
{
int i,j;
for( i = 0 ; i < m ; i ++)
{
for( j = 0 ; j < n ; j ++ )
{
jz3[i][j] = 0 ;
}
}
}
void shuchu( int m, int n, int jz3[m][n])
{
int i , j ;
for( i = 0 ; i < m ; i ++ )
{
for( j = 0 ; j < n ; j ++ )
{
printf("%d ",jz3[i][j] ) ;
}
putchar('\n') ;
}
}
void js( int m,int s ,int n , int jz1[m][s] , int jz2[s][n] , int jz3[m][n] )
{
int i , j , k;
for( i = 0 ; i < m; i ++ )
{
for( k = 0 ; k < s ; k ++ )
{
for( j = 0 ; j < n ; j ++ )
{
jz3[i][j] += jz1[i][k] * jz2[k][j] ;
}
}
}
}
void shuru( int a,int b,int c[a][b])
{
int i , j ;
for( i = 0 ; i < a ; i ++ )
{
for( j = 0 ; j < b ; j ++ )
{
scanf("%d",&c[i][j] ) ;
}
}
}
问题描述
输入两个矩阵,分别是m*s,s*n大小。输出两个矩阵相乘的结果。
输入格式
第一行,空格隔开的三个正整数m,s,n(均不超过200)。
接下来m行,每行s个空格隔开的整数,表示矩阵A(i,j)。
接下来s行,每行n个空格隔开的整数,表示矩阵B(i,j)。
输出格式
m行,每行n个空格隔开的整数,输出相乘後的矩阵C(i,j)的值。
样例输入
2 3 2
1 0 -1
1 1 -3
0 3
1 2
3 1
样例输出
-3 2
-8 2
提示
矩阵C应该是m行n列,其中C(i,j)等于矩阵A第i行行向量与矩阵B第j列列向量的内积。
例如样例中C(1,1)=(1,0,-1)*(0,1,3) = 1 * 0 +0*1+(-1)*3=-3
*/
#include <stdio.h>
void shuru( int a,int b,int c[a][b]) ;
void js( int m,int n ,int s , int jz1[m][s] , int jz2[s][n] , int jz3[m][n] ) ;
void shuchu( int n, int m, int [m][n]) ;
void csh( int m,int n,int [m][n]) ;
int main(void)
{
int m,s,n;
scanf("%d%d%d",&m,&s,&n);
int jz1[m][s] ;
int jz2[s][n] ;
int jz3[m][n] ;
csh(m,n,jz3) ;
shuru( m ,s ,jz1) ;
shuru( s, n , jz2) ;
js( m , s , n , jz1 , jz2 , jz3 );
shuchu( m , n , jz3 ) ;
return 0;
}
void csh(int m, int n, int jz3[][n])
{
int i,j;
for( i = 0 ; i < m ; i ++)
{
for( j = 0 ; j < n ; j ++ )
{
jz3[i][j] = 0 ;
}
}
}
void shuchu( int m, int n, int jz3[m][n])
{
int i , j ;
for( i = 0 ; i < m ; i ++ )
{
for( j = 0 ; j < n ; j ++ )
{
printf("%d ",jz3[i][j] ) ;
}
putchar('\n') ;
}
}
void js( int m,int s ,int n , int jz1[m][s] , int jz2[s][n] , int jz3[m][n] )
{
int i , j , k;
for( i = 0 ; i < m; i ++ )
{
for( k = 0 ; k < s ; k ++ )
{
for( j = 0 ; j < n ; j ++ )
{
jz3[i][j] += jz1[i][k] * jz2[k][j] ;
}
}
}
}
void shuru( int a,int b,int c[a][b])
{
int i , j ;
for( i = 0 ; i < a ; i ++ )
{
for( j = 0 ; j < b ; j ++ )
{
scanf("%d",&c[i][j] ) ;
}
}
}
阅读全文
0 0
- ALGO-86矩阵乘法
- ALGO-86矩阵乘法
- ALGO-86矩阵乘法
- 蓝桥杯 ALGO-86矩阵乘法
- 蓝桥杯 ALGO-86 算法训练 矩阵乘法
- 蓝桥杯 ALGO-86 矩阵乘法(数组l)
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 矩阵乘法
- 一篇网络购物车
- Shiro参考
- ALGO-84大小写转换
- 购物车+订单
- 内存缓存的使用
- ALGO-86矩阵乘法
- 接口工具
- ALGO-90出现次数最多的整数
- 浅谈SRAM与DRAM的异同
- 修改订单金额!?0.01 元购买 iPhoneX?| Web谈逻辑漏洞
- 【投资与创业】【搭建 Alexa 语音服务】【Java 面试】| Chat · 预告
- python 安装celery
- Java 工程师如何得到一个好 Offer
- windows 下安装elasticsearch