C++中生成一个5*5的二维数组,输入数据,输入a,b的值,将a行和b行数据交换,输出新的矩阵

请看一下这些代码到底错在哪里了
#include<iostream>
using namespace std;
int main(){
int array[4][4];
for (int i = 0; i < 4; i++){
for (int j = 0; j < 4; j++)
cin >> array[i][j];
}
int n=0, m=0;
cin >> n >> m;
if (n>4 || m>4)
cout << "error" << endl;
else
{
int a1[4], a2[4];
for (int i = 0; i < 5; i++){
for (int j = 0; j < 4; j++){
a1[i] = array[n][i];
a2[i] = array[m][i];
array[n][i] = a2[i];
array[m][i] = a1[i];
cout << array[i][j] << endl;
}
}
}
}

#include<iostream>
using namespace std;
int main()
{
int array[4][4];
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
cin >> array[i][j];
}
int n=0, m=0;
cin >> n >> m;
if (n>3 || m>3 || n<0 || m<0) //防止输入小于0,及m和n的值都是小于4的
cout << "error" << endl;
else
{
int a1[4], a2[4];
for (int i = 0; i <4; i++) //i值在设置为5越界异常
{
// for (int j = 0; j < 4; j++) //先交换最后输出
// {
a1[i] = array[n][i];
a2[i] = array[m][i];
array[n][i] = a2[i];
array[m][i] = a1[i];
// cout << array[i][j] << endl;
// }
}
}

//输出交换之后的
for (i=0;i<4;i++)
{
for (int j=0;j<4;j++)
{
cout << array[i][j] <<" ";
}
cout<<endl;
}

return 0;//表示正常返回,否则警告
}
温馨提示:答案为网友推荐,仅供参考