oj程序调试--矩阵的乘法运算
2014-05-29 07:49
211 查看
<pre name="code" class="cpp">输入两个矩阵。输出矩阵乘法运算的结果,如果不能进行矩阵乘法运算,则输出一行“Error”。 如果第1个矩阵的行数和列数为 n1, m1(1<=n1<=100,1<=m1<=100),第2个矩阵的行数和列数为 n2, m2(1<=n2<=100,1<=m2<=100)。 矩阵乘法运算规则为: 矩阵1的第1行的m1个元素与矩阵2的第1列的n2个元素依次相乘的和为结果矩阵的第1行的第1个元素 矩阵1的第2行的m1个元素与矩阵2的第1列的n2个元素依次相乘的和为结果矩阵的第2行的第1个元素 …… 矩阵1的第n1行的…… 例如: n1=3,m1=2,n2=2,m2=3 1 2 3 1 2 1*1+2*3+3*5 1*2+2*4+3*6 22 28 4 5 6 * 3 4 = 4*1+5*3+6*5 4*2+5*4+6*6 = 49 64 5 6
* 程序的版权和版本声明部分: * Copyright (c) 2013, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作 者:任子仪 * 完成日期:2014年 5月 29日 * 版 本 号:v12.1 * 输入描述:无 * 问题描述:。 * 程序输出: * 问题分析:略 * 算法设计:略 */ #include<iostream> #include<iomanip> using namespace std; void input(float x[101][101],int n,int m) { //行 for(int i=1;i<=n;i++) { //列 for(int j=1;j<=m;j++) cin>>x[i][j]; } } void mulMatrix(float a[101][101],int n1,int m1,float b[101][101],int n2,int m2,float c[101][101]) { for(int i=1; i<=m1; i++) { for(int j=1; j<=n2; j++) { for(int k=1; k<=m1; k++) { c[i][j]+=a[i][k]*b[k][j]; } } } } int main() { int n; float a[101][101],b[101][101],c[101][101]; int n1,m1,n2,m2; void input(float x[101][101],int n,int m); void mulMatrix(float a[101][101],int n1,int m1,float b[101][101],int n2,int m2,float c[101][101]); cin>>n; while(n--) { cin>>n1>>m1; input(a,n1,m1); cin>>n2>>m2; input(b,n2,m2); if(m1!=n2) { cout<<"Error"<<endl; continue; } mulMatrix(a,n1,m1,b,n2,m2,c); cout<<setiosflags(ios::fixed); cout<<setprecision(2); for(int i=1; i<=n1; i++) { for(int j=1; j<=m2; j++) if(j!=m2) cout<<c[i][j]<<' '; else cout<<c[i][j]; cout<<endl; } cout<<endl; } return 0; }
示例图片:
心得体会:
void mulMatrix(float a[101][101],int n1,int m1,float b[101][101],int n2,int m2,float c[101][101]) { //float sum for(int i=1; i<=m1; i++) { for(int j=1; j<=n2; j++) { for(int k=1; k<=m1; k++) { sum+=a[i][k]*b[k][j]; } // c[i][j]=sum; } } }
void mulMatrix函数与原文当中的函数感觉没区别啊,可是为什么这个就错了可是原文中的就对了呢????
花 了好长时间都没有弄对,最后想试试吧,结果对看。愁死了啊
相关文章推荐
- fjnu 1405 编制一个乘法运算的程序
- 程序碎片- 矩阵乘法优化(dp,循环)
- PSoC程序调试-运算优先级
- 九度OJ 1081 递推数列 -- 矩阵二分乘法
- 线性代数(四) :矩阵乘法的性质与分块矩阵的运算
- 数值计算程序大放送-矩阵运算
- cuda下调试矩阵相加程序
- 使用一维数组和二维数组来存储矩阵并进行乘法运算
- 以矩阵乘法为例,了解cpu cache对程序性能的影响
- 编制一个乘法运算的程序
- 1703 乘法运算的程序
- 通过矩阵乘法看内存访问对CPU运算速度的影响
- java第二周作业--实现矩阵的加法和乘法运算
- 矩阵乘法的程序
- 一个简单的MATLAB读写文本文件程序--稀疏矩阵向量乘法
- OJ程序简便调试方法
- 矩阵乘法的程序
- 矩阵乘法运算test
- 九度OJ 1081 递推数列 -- 矩阵二分乘法
- 关于一个简单的矩阵运算程序,将A矩阵加上A矩阵的逆放到B矩阵中。