C++笔记:二维数组行列互换

/*
将二维数组中行数据和列数据相互置换
*/
#include
#include//主要是对cin,cout之类的一些操纵运算子,比如setfill,setw,setbase,setprecision等等。
     //它是I/O流控制头文件,就像C里面的格式化输出一样.
using namespace std;
int fun(int array[3][3]){//此处函数是对数组的引用调用,直接操作数组
 int temp;//定义临时存放变量
 for(int i=0;i<3;i++){
  for(int j=0;j<i;j++){//注意此处循环限制语句j
   temp=array[i][j];
   array[i][j]=array[j][i];
   array[j][i]=temp;
  }
 }
 
 return 0;
}
int main(){
 int array[3][3]={{1,2,3},{4,5,6},{7,8,9}};
 int array_row=sizeof(array)/sizeof(array[0]);//求数组array的行数
 int array_column=sizeof(array[0])/sizeof(array[0][0]);//求数组array的列数
 cout<<"Converted Front:"<<endl;
 for(int i=0;i<array_row;i++){
  for(int j=0;j<array_column;j++){
   cout<<setw(7)<<array[i][j];
  }
  cout<<endl;
 }
 fun(array);//数组名保存的是数组内存首地址
 cout<<"Converted Result:"<<endl;
 for(int i=0;i<array_row;i++){
  for(int j=0;j<array_column;j++){
   cout<<setw(7)<<array[i][j];
  }
  cout<<endl;
 }
 return 0;
}

输出:
C++笔记:二维数组行列互换_第1张图片
重点关注fun函数部分:
当i=0时(第一行),内层不执行循环。

当i=1时(第二行),此时j<1,操作互换的是(1,0)号位,与(0,1)号位。

当i=2时(第三行),此时j<2,可操作(2,0)与(2,1)号位,即(2,0)与(0,2), (2,1)与(1,2)执行互换操作。

你可能感兴趣的:(C++)