矩阵加法: cout<<a[i][j]+b[i][j]<<" ";
#include<bits/stdc++.h>
using namespace std;
int n,m,a[10010][10010],b[10010][10010];
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>a[i][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>b[i][j];
for(int i=1;i<=n;++i){
for(int j=1;j<=m;++j){
cout<<a[i][j]+b[i][j]<<" ";
}cout<<endl;
}
return 0;
}
矩阵乘法: c[i][j]+=a[i][l]*b[l][j];
#include<bits/stdc++.h>
using namespace std;
int a[10010][10010],b[10010][10010],c[10010][10010],m,n,k;
int main(){
cin>>n>>m>>k;
for(int i=1;i<=n;i++){ //nxm的a矩阵
for(int j=1;j<=m;j++){
cin>>a[i][j];
}
}
for(int i=1;i<=m;i++){ //mxk的b矩阵
for(int j=1;j<=k;j++){
cin>>b[i][j];
}
}
for(int i=1;i<=n;i++) //分别列举出a和b矩阵
for(int j=1;j<=k;j++)
for(int l=1;l<=m;l++)
c[i][j]+=a[i][l]*b[l][j];
for(int i=1;i<=n;i++){
for(int j=1;j<=k;j++)
cout<<c[i][j]<<" ";
cout<<endl;
}
return 0;
}
矩阵转置: cout<<a[j][i]<<" ";
#include<iostream>
using namespace std;
int n,m;
int a[105][105];//定义二维数组
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];//输入二维数组
}
}
for(int i=1;i<=m;i++){//根据规律,遍历列下标
for(int j=1;j<=n;j++){//把这一列的所有元素输出
cout<<a[j][i]<<" ";
}
cout<<endl;
}
return 0;
}
矩阵交换行:swap(a[m][i],a[n][i]);//交换两行
#include<bits/stdc++.h>
using namespace std;
int a[10][10],m,n;//二维数组存矩阵
int main()
{
for(int i=1;i<=5;i++){
for(int j=1;j<=5;j++) cin>>a[i][j];{
}
}
cin>>m>>n;
for(int i=1;i<=5;i++)
{swap(a[m][i],a[n][i]);//交换两行
}
for(int i=1;i<=5;i++)
{
for(int j=1;j<=5;j++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
矩阵旋转: for(int j=n;j>=1;j--)//逆序输出,即顺时针旋转九十度
cout<<a[j][i]<<" ";
#include<bits/stdc++.h>
using namespace std;
int a[110][110],b[110][110],m,n;
double s;
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>a[i][j];
for(int i=1;i<=m;i++){
for(int j=n;j>=1;j--)//逆序输出,即顺时针旋转九十度
cout<<a[j][i]<<" ";
cout<<endl;
}
return 0;
}