目录
题目要求
代码(定义两个数组)
运行结果图(定义两个数组)
代码(定义一个数组)
运行结果图(定义一个数组)
简易思路图解
编辑
小结
题目要求
有一个2 × 3的矩阵,将之转置为3 × 2的矩阵,并显示出这个转置后的矩阵。
如:
转置后:
先用两个数组的方法解决一下题目
代码(定义两个数组)
#include <stdio.h>
int main()
{
//根据题目要求,建立两个二维数组
//arr存储转置前的矩阵,num存储转置后的矩阵
int arr[2][3] = { {1,2,3},{4,5,6} };
int num[3][2];
//row-行号下标,col-列号下标
int row, col;
//将原来的矩阵打印出来
printf("2*3:\n");
for (row = 0; row < 2; row++)
{
for (col = 0; col < 3; col++)
{
printf("%2d", arr[row][col]);
}
printf("\n");
}
//将转置的矩阵存进数组num
for (row = 0; row < 3; row++)
{
for (col = 0; col < 2; col++)
{
num[row][col] = arr[col][row];
}
}
//打印出新的矩阵
printf("3*2:\n");
for (row = 0; row < 3; row++)
{
for (col = 0; col < 2; col++)
{
printf("%2d", num[row][col]);
}
printf("\n");
}
return 0;
}
运行结果图(定义两个数组)
接下来再用一个数组的方法解决一下题目
代码(定义一个数组)
#include <stdio.h>
int main()
{
//因为原矩阵为2*3,新矩阵为3*2,总共要占用3行3列
//故建立数组时,定义为arr[3][3],防止出现数组越界的情况
int arr[3][3] = { {1,2,3},{4,5,6},{0,0,0} };
int row,col;
printf("2*3:\n");
for(row = 0; row < 2; row++)
{
for (col = 0; col < 3; col++)
{
printf("%2d", arr[row][col]);
}
printf("\n");
}
printf("3*2:\n");
for (col = 0; col < 3; col++)
{
for (row = 0; row < 2; row++)
{
printf("%2d", arr[row][col]);
}
printf("\n");
}
return 0;
}
运行结果图(定义一个数组)
简易思路图解
小结
题目的关键点在于理解二维数组的下标,并且熟悉了解二维数组的行和列。
使用数组的时候更要注意数组越界的问题,如果出现了数组越界,打印出来的值将是不确定值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)