利用C++实现矩阵转置的问题

大一小白新生,想请教各位编程大佬一个小问题。
#include
using namespace std;

void swap(int a[3][3])
{
for(int i=0;i<3;i++){
for(int j=0;j<3;j++)
cout<<a[j][i]<<" ";
cout<<endl;
}
}

void main()
{
int i,j;
int a[3][3];
cout<<"输入9个整数作为矩阵元素的值:"< for(i=0;i for(j=0;j cin>>a[i][j];
}
}
cout<<"初始矩阵:"<<endl;
for(i=0;i<3;i++){
for(j=0;j<3;j++)
{
cout<<a[i][j]<<" ";
}
cout<<endl;
}
cout<<"转置后矩阵:"<<endl;
swap(a);
}
代码确实可以正确运行,但是我想问: swap函数里的输出换行符在一个中括号里,而输出初始矩阵后的输出换行符在一个中括号里面?

for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
cout<<a[j][i]<<" ";//这里把{}省去了
cout<<endl;
}
//初始
for(i=0;i<3;i++){
for(j=0;j<3;j++)
{
cout<<a[i][j]<<" ";
}
cout<<endl;
}
//其实这两部分的cout<<endl;是在同一级的
//另外程序实现的是转置打印,数组里面的内容没有实现转置交换