【实训4-10】实例详解(四):二维数组(矩阵)的转置
(总分11)


 【实训目的】掌握二维数组的处理   

【第 1 步】实训内容介绍
实训内容介绍
二维数组(矩阵)的转置
实训结束

【Jitor 校验第 1 步】我已阅读实训内容介绍 // 送分题。直接点击。

 

 

【第 2 步】二维数组(矩阵)的转置

 1、本实训使用项目 cpp4 中的 cpp4code.cpp 源代码文件,如果不存在,则先创建项目,然后创建源代码文件。
 2、将下述代码复制到 cpp4code 中:

#include <iostream.h>
#define N 2  // 2行
#define M 5  // 5列

void main(void) {
         int a[N][M];     // 转置前的矩阵(保存原数据)
         int b[M][N];     // 转置后的矩阵(保存结果)

         cout << "输入 2 X 5个整数:";
         int i,j;
         for(i=0; i<N; i++){
                  for(j=0; j<M; j++){
                           cin >> a[i][j];
                  }
         }

         cout << "输出原始数据:\n";
         for(i=0; i<N; i++){
                  for(j=0; j<M; j++){
                           cout << "{" << a[i][j] << "}, ";
                  }
                  cout << endl;
         }
// 在这里补写代码

         cout << "输出结果数据:\n";
         for(i=0; i<M; i++){
                  for(j=0; j<N; j++){
                           cout << "{" << b[i][j] << "}, ";
                  }
                  cout << endl;
         }

}

 补写代码,功能是实现二维数组(矩阵)的转置,代码见简明教程【例4-10】第 1 步代码,运行结果如下:

输入 2 X 5个整数:1 2 3 4 5 6 7 8 9 10
输出原始数据:
{1}, {2}, {3}, {4}, {5},
{6}, {7}, {8}, {9}, {10},

 

输出结果数据:
{1}, {6},
{2}, {7},
{3}, {8},
{4}, {9},
{5}, {10},
Press any key to continue

代码如下:
// 从下一行开始复制。
#include <iostream.h>
#define N 2  // 2行
#define M 5  // 5列

void main(void) {
         int a[N][M];     // 转置前的矩阵(保存原数据)
         int b[M][N];     // 转置后的矩阵(保存结果)

         cout << "输入 2 X 5个整数:";
         int i,j;
         for(i=0; i<N; i++){
                  for(j=0; j<M; j++){
                           cin >> a[i][j];
                  }
         }

         cout << "输出原始数据:\n";
         for(i=0; i<N; i++){
                  for(j=0; j<M; j++){
                           cout << "{" << a[i][j] << "}, ";
                  }
                  cout << endl;
         }
// 在这里补写代码
         for(i=0; i<N; i++){
                  for(j=0; j<M; j++){
                           b[j][i] = a[i][j];
                  }
                  cout << endl;
         }

         cout << "输出结果数据:\n";
         for(i=0; i<M; i++){
                  for(j=0; j<N; j++){
                           cout << "{" << b[i][j] << "}, ";
                  }
                  cout << endl;
         }

}
// 一直复制到上一行结束。

【Jitor 校验第 2 步】 // 复制上面的代码到VC++ 6.0,保存并运行。点击。

 

 

【第 3 步】实训总结

 本实训通过二维数组(矩阵)的转置,熟练学会对行和列的操作。 

【Jitor 校验第 3 步】我已阅读实训总结 // 送分题。直接点击。

 

仍有疑问 ? 联系QQ 9429444(陈海云) : 返回首页