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

╰半夏微凉° 2021-12-04 08:13 548阅读 0赞
  1. /* 将二维数组中行数据和列数据相互置换 */
  2. #include<iostream>
  3. #include<iomanip>//主要是对cin,cout之类的一些操纵运算子,比如setfill,setw,setbase,setprecision等等。
  4. //它是I/O流控制头文件,就像C里面的格式化输出一样.
  5. using namespace std;
  6. int fun(int array[3][3]){ //此处函数是对数组的引用调用,直接操作数组
  7. int temp;//定义临时存放变量
  8. for(int i=0;i<3;i++){
  9. for(int j=0;j<i;j++){ //注意此处循环限制语句j<i
  10. temp=array[i][j];
  11. array[i][j]=array[j][i];
  12. array[j][i]=temp;
  13. }
  14. }
  15. return 0;
  16. }
  17. int main(){
  18. int array[3][3]={ { 1,2,3},{ 4,5,6},{ 7,8,9}};
  19. int array_row=sizeof(array)/sizeof(array[0]);//求数组array的行数
  20. int array_column=sizeof(array[0])/sizeof(array[0][0]);//求数组array的列数
  21. cout<<"Converted Front:"<<endl;
  22. for(int i=0;i<array_row;i++){
  23. for(int j=0;j<array_column;j++){
  24. cout<<setw(7)<<array[i][j];
  25. }
  26. cout<<endl;
  27. }
  28. fun(array);//数组名保存的是数组内存首地址
  29. cout<<"Converted Result:"<<endl;
  30. for(int i=0;i<array_row;i++){
  31. for(int j=0;j<array_column;j++){
  32. cout<<setw(7)<<array[i][j];
  33. }
  34. cout<<endl;
  35. }
  36. return 0;
  37. }

输出:
在这里插入图片描述
重点关注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)执行互换操作。

发表评论

表情:
评论列表 (有 0 条评论,548人围观)

还没有评论,来说两句吧...

相关阅读

    相关 SQL面试题(行列互换

    有一个SQL面试题(行列互换)在面试中出现的概率极高,最近有学生出去面试仍然会遇到这样的题目,在这里跟大家分享一下。 题目:数据库中有一张如下所示的表,表名为sales。