基本上可以实现,但还不是很完美
#include<iostream>
#include<iomanip>
using namespace std;
int cul()
{
const int a = 3, b = 3, c = 3, d = 2;
int ar1[a][b], ar2[c][d], ar3[c][d] = {};
cout << "请按行输入3*3的矩阵A的元素:" << endl;
for (int i = 0;i < 3; i++)
{
for (int j = 0;j < 3; j++)
{
cin >> ar1[i][j];
}
}
cout << "请按行输入3*2的矩阵B的元素:" << endl;
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 2; j++)
{
cin >> ar2[i][j];
}
}
cout << "矩阵A、B相乘的结果矩阵C为:" << endl;
for (int i = 0;i < 3; i++)
{
for (int k = 0;k < 2; k++)
{
for (int j = 0;j < 3;j++)
{
ar3[i][k] += ar1[i][j] * ar2[j][k];
}cout << setw(4) << ar3[i][k];
}cout << endl;
}
return 0;
}
int main()
{
cul();
system("pause");
return 0;
}
需要注意的地方:初始化时让ar3={},否则会出错、二维数组、嵌套循环的使用、setw函数
C++ setw() 函数
C++ setw() 函数用于设字段的宽度,语法格式如下:
setw(n) (需要#include <iomanip>)
n 表示宽度,用数字表示。
setw() 函数只对紧接着的输出产生作用。
当后面紧跟着的输出字段长度小于 n 的时候,在该字段前面用空格补齐,当输出字段长度大于 n 时,全部整体输出。
以下实例演示了 setw() 函数的使用:
实例
#include <iostream> #include <iomanip> using namespace std; int main() { // 开头设置宽度为 4,后面的 runoob 字符长度大于 4,所以不起作用 cout << setw(4) << "runoob" << endl; // 中间位置设置宽度为 4,后面的 runoob 字符长度大于 4,所以不起作用 cout << "runoob" << setw(4) << "runoob" << endl; // 开头设置间距为 14,后面 runoob 字符数为6,前面补充 8 个空格 cout << setw(14) << "runoob" << endl; // 中间位置设置间距为 14 ,后面 runoob 字符数为6,前面补充 8 个空格 cout << "runoob" << setw(14) << "runoob" << endl; return 0; }
以上代码输出结果为:
runoob runoobrunoob runoob runoob runoob
setw() 默认填充的内容为空格,可以 setfill() 配合使用设置其他字符填充。
实例
#include <iostream> #include <iomanip> using namespace std; int main() { cout << setfill('*') << setw(14) << "runoob" << endl; return 0; }
以上代码输出结果为:
********runoob