初学者,我想在C中编写一个程序来初始化一个8 x 10矩阵的每一行,A [8] [10],该行的值(第一行包含全0,第二行包含所有1的等。)
打印完这个矩阵后,我想转置它,制作第二个矩阵B [10] [8]
我正在尝试使用嵌套for循环,但我似乎无法接近答案。
答案 0 :(得分:1)
如果您想在自己的代码中执行此操作,请参阅以下示例:
#include<stdio.h>
#define ROWS 8
#define COLS 10
int main(int argc, char *argv[])
{
int A[ROWS][COLS];
int B[COLS][ROWS];
int i,j;
/*populate*/
for (i=0; i<ROWS; i++)
{
for (j=0; j<COLS; j++)
{
A[i][j] = 2*i + j;
}
}
/*display*/
printf("=== Original matrix === \n");
for (i=0; i<ROWS; i++)
{
for (j=0; j<COLS; j++)
{
printf("%3d ", A[i][j]);
}
printf("\n");
}
/*transpose*/
for (i=0; i<ROWS; i++)
{
for (j=0; j<COLS; j++)
{
B[j][i] = A[i][j];
}
}
/*display*/
printf("\n\n=== Transposed matrix === \n");
for (i=0; i<COLS; i++)
{
for (j=0; j<ROWS; j++)
{
printf("%3d ", B[i][j]);
}
printf("\n");
}
return 0;
}
输出:
===原始矩阵===
0 1 2 3 4 5 6 7 8 9
2 3 4 5 6 7 8 9 10 11
4 5 6 7 8 9 10 11 12 13
6 7 8 9 10 11 12 13 14 15
8 9 10 11 12 13 14 15 16 17
10 11 12 13 14 15 16 17 18 19
12 13 14 15 16 17 18 19 20 21
14 15 16 17 18 19 20 21 22 23
===转置矩阵===
0 2 4 6 8 10 12 14
1 3 5 7 9 11 13 15
2 4 6 8 10 12 14 16
3 5 7 9 11 13 15 17
4 6 8 10 12 14 16 18
5 7 9 11 13 15 17 19
6 8 10 12 14 16 18 20
7 9 11 13 15 17 19 21
8 10 12 14 16 18 20 22
9 11 13 15 17 19 21 23
答案 1 :(得分:0)