某二维数组存放的数据构成一个n*n的方阵,其中n<=5。写程序,从键盘输入n的值(n<=6),该n*n矩阵中各元素的值按下面的公式计算: a[i][j] = i * n + j + 1 其中,a[i][j]表示第i行第j列的元素。要求分别输出该矩阵和它的转置矩阵。 输入提示信息:无 输入n的输入格式:%d 输出提示:"The original matrix is:\n" 输出提示:"The changed matrix is:\n" 输出格式:对矩阵的输出要求:列与列之间为%3d,行与行之间为\n
时间: 2024-03-16 12:45:50 浏览: 46
好的,以下是对应的C语言代码:
```c
#include <stdio.h>
int main()
{
int n, i, j;
int a[6][6], b[6][6];
printf("请输入n的值:");
scanf("%d", &n);
// 计算矩阵a
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
a[i][j] = i * n + j + 1;
// 输出矩阵a
printf("The original matrix is:\n");
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++)
printf("%3d", a[i][j]);
printf("\n");
}
// 计算矩阵b
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
b[i][j] = a[j][i];
// 输出矩阵b
printf("The changed matrix is:\n");
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++)
printf("%3d", b[i][j]);
printf("\n");
}
return 0;
}
```
程序首先读取n的值,然后计算矩阵a并输出,接着计算矩阵b(即a的转置矩阵)并输出。注意输出时要用%3d格式控制符,以保证输出的数字占3个字符宽度,方便观察。
阅读全文