国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

利用C++實現矩陣的相加/相稱/轉置/求鞍點

2020-01-26 15:43:32
字體:
來源:轉載
供稿:網友

1.矩陣相加

兩個同型矩陣做加法,就是對應的元素相加。

復制代碼 代碼如下:

#include<iostream>
using namespace std;
int main(){
 int a[3][3]={{1,2,3},{6,5,4},{4,3,2}};
 int b[3][3]={{4,3,2},{6,5,4},{1,2,3}};
 int c[3][3]={0,0,0,0,0,0,0,0,0};
 int i,j;
 cout<<"Array A:"<<endl;
 for(i=0;i<3;i++){
  for(j=0;j<3;j++){
   c[i][j]+=a[i][j];//實現相加操作1
   cout<<"/t"<<a[i][j];//輸出矩陣A
  }
  cout<<endl;
 }
 cout<<endl;
 cout<<"Array B:"<<endl;
 for(i=0;i<3;i++){
  for(j=0;j<3;j++){
   c[i][j]+=b[i][j];//實現矩陣操作2
   cout<<"/t"<<b[i][j];//輸出矩陣B
  }
  cout<<endl;
 }
 cout<<endl;
 cout<<"Array C:"<<endl;
 for(i=0;i<3;i++){
  for(j=0;j<3;j++){
   cout<<"/t"<<c[i][j];//輸出矩陣C
  }
  cout<<endl;
 }
 cout<<endl;
 return 0;

}


2.實現矩陣的轉置
復制代碼 代碼如下:

#include<iostream>
using namespace std;
int main(){
 int a[3][2]={{4,3},{6,5},{1,2}};
 int b[2][3]={0,0,0,0,0,0};
 int i,j;
 cout<<"Array A:"<<endl;
    for(i=0;i<3;i++){
     for(j=0;j<2;j++){
      cout<<"/t"<<a[i][j];//輸出矩陣A
      b[j][i]=a[i][j];//進行轉置操作
     }
     cout<<endl;
    }
    cout<<endl;
    cout<<"Array B:"<<endl;
    for(i=0;i<2;i++){
     for(j=0;j<3;j++){
      cout<<"/t"<<b[i][j];
     }
     cout<<endl;
    }
    cout<<endl;
 return 0;

}

3.實現矩陣的相乘

一個m行n列的矩陣可以和n列k行的矩陣相乘,得到一個m行k列的矩陣

復制代碼 代碼如下:

#include<iostream>
using namespace std;
int main(){
 int a[3][2]={{4,3},{6,5},{1,2}};
 int b[2][3]={{1,2,3},{6,5,4}};
 int c[3][3]={0,0,0,0,0,0,0,0,0};
 int i,j,k,l;
 cout<<"Array A:"<<endl;
 for(i=0;i<3;i++){
  for(j=0;j<2;j++){
   cout<<"/t"<<a[i][j];//輸出矩陣A
  }
  cout<<endl;
 }
 cout<<endl;
 cout<<"Array B:"<<endl;
 for(i=0;i<2;i++){
  for(j=0;j<3;j++){
   cout<<"/t"<<b[i][j];//輸出矩陣B
  }
  cout<<endl;
 }
 cout<<endl;
 cout<<"Array C:"<<endl;
 for(i=0;i<3;i++){
  for(j=0;j<3;j++){
     for(k=0;k<2;k++){
        c[i][j]+=a[i][k]*b[k][j];//實現相乘操作
     }
     cout<<"/t"<<c[i][j];//輸出矩陣C
  }
  cout<<endl;
 }
 cout<<endl;
 return 0;

}

4.求矩陣中的鞍點

在矩陣中行中最大,列中最小的元素就是我們要求的鞍點

復制代碼 代碼如下:

#include<iostream>
using namespace std;
int main(){
    int a[3][4]={{3,2,13,1},{8,7,10,5},{12,11,14,9}};
 int i,j,k,ad,q=0;
 bool tag;
 for(i=0;i<3;i++){
  for(j=0;j<4;j++){
   cout<<"/t"<<a[i][j];
  }
  cout<<endl;
 }
 cout<<endl;
 for(i=0;i<3;i++){
  ad=a[i][0];
  tag=true;
  for(j=1;j<4;j++){
   if(ad<a[i][j]){
    k=j;
   }//先選出行中最大
  }
  for(j=0;j<3;j++){
   if(a[i][k]>a[j][k]){
    tag=false;
   };//再選出列中最小
  }
  cout<<endl;
  if(tag==true){
   cout<<"鞍點是第"<<(i+1)<<"行,第"<<(k+1)<<"列的"<<a[i][k]<<endl;
   q++;
  }
 }
 if(q==0){
  cout<<"沒有一個鞍點~"<<endl;
 }
 cout<<endl;
 return 0;

}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永新县| 肥城市| 丹棱县| 通河县| 卓资县| 镇赉县| 乡宁县| 如东县| 泽州县| 翁牛特旗| 荥经县| 东兰县| 阳新县| 湖南省| 莎车县| 香格里拉县| 新疆| 金乡县| 钦州市| 七台河市| 临汾市| 汉寿县| 公主岭市| 乌拉特后旗| 高邮市| 福贡县| 井冈山市| 乐亭县| 曲阜市| 安仁县| 山东省| 噶尔县| 乃东县| 前郭尔| 内丘县| 鸡泽县| 正阳县| 枝江市| 广灵县| 松江区| 芜湖市|