zoukankan      html  css  js  c++  java
  • 基础练习 矩阵乘法 (蓝桥杯)

    注:矩阵乘法运算法则:c[i][j]+=a[i][j++]*b[i++][j];(这里,数组c[i][j]初值赋为0,a,b数组初值相等)

    #include <iostream>
    #include <string.h>
    int c[35][35];//在主函数外定义的数组是全局变量,自动赋值为零 
    using namespace std;
    int main()
    {int a[35][35],b[35][35];
        int n,m,i,j;
        cin>>n>>m;
        for(int i=0;i<n;i++)
        {
            for(int j=0;j<n;j++)
            {
                cin>>a[i][j];
                b[i][j]=a[i][j]; 
            }
        }
        if(m==0)
        {
            for(i=0;i<n;i++)
            {
                for(j=0;j<n;j++)
                {
                    if(i!=j)
                    cout<<"0"<<" ";
                    else cout<<"1"<<" ";
                }
                cout<<endl;
            }
        }
        else 
        {
            while(--m)
            {
                for( i=0;i<n;i++)
                {
                    
                    for( j=0;j<n;j++)
                    {   
                        for(int k=0;k<n;k++)
                        c[i][j]+=b[i][k]*a[k][j];//b[i][j]是原理的矩阵,a[i][j]是矩阵两两相乘的后所得的新矩阵
                                                 //在接下来的赋值过程中,一定要把c的值重新符零,否则a的值就不是矩阵两两相乘的结果 
                    }    
                }
            for(i=0;i<n;i++)
            for(j=0;j<n;j++)
            {
            a[i][j]=c[i][j];//每乘一次将乘得的结果赋给a, 
            c[i][j]=0;//c归零,重新保存新的一轮成积 
            }
           
            }
        for(int i=0;i<n;i++)
        {
            for(int j=0;j<n;j++)
            {
                cout<<a[i][j]<<" ";
            }
            cout<<endl;
        }
        }
        return 0;
    }
    View Code
  • 相关阅读:
    暑假第二周总结
    7.18-7.24 第一周周报
    poj 3295 Tautology
    2016多校 #2 1006 Fantasia
    codeforces 698B Fix a Tree
    codeforces 699B Bomb
    HDU 4578(线段树
    CF 600F( 二分图
    hdu 5517 Triple(二维树状数组)
    HDU HDOJ5412(树套树or整体二分
  • 原文地址:https://www.cnblogs.com/corald-88/p/8426680.html
Copyright © 2011-2022 走看看