矩阵相乘

include<iostream>

using namespace std;

int main(){

//输入两个矩阵,分别指出是几乘几   
int i , j; //行和列 

cout<<"请输入第一个矩阵的行和列" <<endl;

cin>>i>>j;

cout<<i<<"..."<<j<<endl;

int **number1 = new int*[i];

for(int num1 = 0; num1<i; num1++){
    
    number1[num1] = new int[j];
}

for(int k=0; k<i; k++){
    
    for(int kk=0; kk<j; kk++){

// cin可以连续从键盘读取想要的数据,以空格、tab或换行作为分隔符

        cin>>number1[k][kk];
    }
}

int m , n;

cout<<"请输入第二个矩阵的行和列"<<endl;

cin>>m>>n;

if(j!=m){
    cout<<"第一列不等于第一行,错误"<<endl;
    return -1;
}

int **number2 = new int*[m];

for(int num1 = 0; num1<m; num1++){
    
    number2[num1] = new int[n];
}


for(int k=0; k<m; k++){
    
    for(int kk=0; kk<n; kk++){
        
        cin>>number2[k][kk];
    }
}

//定义一个临时矩阵
int **temp = new int*[i];

for(int num1 = 0; num1<i; num1++){
    
    temp[num1] = new int[n];
}

//将两个矩阵相乘保存到temp数组里面

for(int k=0; k<i; k++)
for(int kk=0; kk<n; kk++){
    
    temp[k][kk] = 0;
    for(int digit=0; digit<j; digit++){
    
        temp[k][kk] += number1[k][digit]*number2[digit][kk];
        
        //cout<<number1[k][digit]<<"-"<<number2[digit][kk];
    } 
    
    cout<<endl;
}


cout<<"计算的结果为:"<<endl;

for(int k=0; k<i; k++){
    
    for(int kk=0; kk<n; kk++){
        
        cout<<temp[k][kk]<<" ";
    }
    
    cout<<endl;
}
return 0;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容