您当前的位置: 首页 >  矩阵

c++矩阵乘法

发布时间:2019-06-04 22:31:25 ,浏览量:6

写的有点像matlab,数字之间 可以用逗号或者空格隔开 可运算100X100大小以内的方阵乘法 程序效果 在这里插入图片描述 代码部分:

#include #include #include #include #include using namespace std; int main() { int a[100][100]; int b[100][100]; int c[100][100]; string base; getline(cin,base); int sizebase=base.size(); int control=1; int control2=1; int hang=0,lie=0; string number; for(int i=0;i<sizebase;i++) { if(control==1) { if(base[i]!='['&&base[i]!=']'&&base[i]!=','&&base[i]!=';'&&base[i]!='*'&&base[i]!=' ') { number.append(base,i,1); control2=1; } if(base[i]==','||base[i]==' ') { if(control2==1) { int nu=atoi(number.c_str()); a[hang][lie]=nu; number.erase(number.begin(),number.end()); lie+=1;control2=0; } } if(base[i]==';') { if(control2==1) { int nu=atoi(number.c_str()); a[hang][lie]=nu; number.erase(number.begin(),number.end()); hang+=1; lie=0;control2=0;} } if(base[i]=='*') { int nu=atoi(number.c_str()); a[hang][lie]=nu; number.erase(number.begin(),number.end()); hang=0; lie=0; control=2; } } if(control==2) { if(base[i]!='['&&base[i]!=']'&&base[i]!=','&&base[i]!=';'&&base[i]!='*'&&base[i]!=' ') { number.append(base,i,1); control2=1; } if(base[i]==','||base[i]==' ') { if(control2==1) { int nu=atoi(number.c_str()); b[hang][lie]=nu; number.erase(number.begin(),number.end()); lie+=1;control2=0; } } if(base[i]==';') { if(control2==1) { int nu=atoi(number.c_str()); b[hang][lie]=nu; number.erase(number.begin(),number.end()); hang+=1; lie=0;control2=0; } } if(base[i]==']') { int nu=atoi(number.c_str()); b[hang][lie]=nu; number.erase(number.begin(),number.end()); } } } for(int i=0;i<=hang;i++) { for(int j=0;j<=lie;j++) { c[i][j]=0; for(int k=0;k<=hang;k++) { c[i][j]=c[i][j]+a[i][k]*b[k][j]; } } } int max=c[0][0]; for(int i=0;i<=hang;i++) { for(int j=0;j<=lie;j++) { max=max>c[i][j]?max:c[i][j]; } } int wei=0; while(max!=0) { max/=10; wei+=1; } wei-=1; cout<<"answer="<<endl; for(int i=0;i<=hang;i++) { cout<<'|'<<' '; for(int j=0;j<=lie;j++) { cout<<setw(wei+1)<<setfill(' ')<<a[i][j]<<' '; } cout<<'|'; if(i==hang/2) { cout<<" X "; } else { cout<<"   "; } cout<<'|'<<' '; for(int j=0;j<=lie;j++) { cout<<setw(wei+1)<<setfill(' ')<<b[i][j]<<' '; } cout<<'|'; if(i==hang/2) { cout<<" = "; } else { cout<<"   "; } cout<<'|'<<' '; for(int j=0;j<=lie;j++) { cout<<setw(wei+1)<<setfill(' ')<<c[i][j]<<' '; } cout<<'|'<<endl; } system("pause"); return 0; } 
关注
打赏
1688896170
查看更多评论

暂无认证

  • 6浏览

    0关注

    106485博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.9188s