多维矩阵转一维数组(c++)【转载】

在由二维矩阵转为一维数组时,我们有两种方式:以列为主和以行为主。

以列为主的二维矩阵转为一维数组时,转换公式为:

index=column+row×行数

以行为主的二维矩阵转为一维数组时,转换公式为:

index=row+column×列数

   

#include<iostream>

#include <iomanip>

using namespace std;

int main()

{

      int arr1[3][4] = { { 1, 2, 3, 4 },

                         { 5, 6, 7, 8 },

                         { 9, 10, 11, 12 }

                       };

      int arr2[12] = { 0 };

      int row, column, index;

      cout << "原二维资料:" << endl;

      for (row = 0; row < 3; row++)

      {

            for (column = 0; column < 4; column++)

                  cout << setiosflags(ios::left) << setw(4) << arr1[row][column];

            cout << endl;

      }

      cout << "以列为主:" << endl;

      for (row = 0; row < 3; row++)

      {

            for (column = 0; column < 4; column++)

            {

                  index = column + row * 4;

                  arr2[index] = arr1[row][column];

            }

      }

      for (int i = 0; i < 12; i++)

            cout << setw(4)<<arr2[i] << " " ;

      cout << endl;

      cout << "以行为主:" << endl;

      for (row = 0; row < 3; row++)

      {

            for (column = 0; column < 4; column++)

            {

                  index = row + column * 3;

                  arr2[index] = arr1[row][column];

            }

      }

      for (int i = 0; i < 12; i++)

            cout << setw(4) << arr2[i] << " ";

      cout << endl;

      return 0;

}

posted @ 2015-12-04 03:00  硫酸亚铜  阅读(769)  评论(0编辑  收藏  举报