矩阵为N阶,使用二维数组a[N-1][N-1]表示。
矩阵元素使用二维数组元素a[i][j]表示。
访问矩阵元素时,遍历下标表示为a[i][j],i为行下标,j为列下标,它们的取值范围均为[0,N-1]。
矩阵的术语与二维数组下标的对应关系如下表:
术语 | 含义 | 下标规律 |
---|---|---|
主对角线 | 从矩阵的左上角至右下角的连线 | i == j |
上三角 | 主对角线以上的部分 | i <= j |
下三角 | 主对角线以下的部分 | i >= j |
副对角线 | 从矩阵的右上角至左下角的连线 | i + j = N-1 |
举例:输入一个正整数 n (n<10),生成一个n阶矩阵,将方阵转置(即行列互换)后输出。
矩阵赋初值使用正序赋值方法:a[i][j] = i * n + j + 1
#define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>
# include <stdlib.h>//malloc
void Print(int a[9][9]);
int n;//阶数设置为全局变量
int main()
{
int a[9][9];//定义9阶最大空间
int temp;
printf("输入矩阵阶数:");
scanf("%d", &n);
//赋初值过程
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
a[i][j] = i * n + j + 1;
}
}
Print(a);
printf("\n");
printf("\n");
printf("\n");
//转置过程
for (int k = 0; k < n; k++)
{
for (int l = 0; l < n; l++)
{
if (k <= l)
{
//以主对角线为轴,上三角元素与下三角元素对称互换
temp = a[k][l];
a[k][l] = a[l][k];
a[l][k] = temp;
}
}
}
Print(a);
}
void Print(int a[9][9])
{
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
printf("%4d", a[i][j]);
}
printf("\n");
}
}
文章来源:https://www.toymoban.com/news/detail-423896.html
文章来源地址https://www.toymoban.com/news/detail-423896.html
到了这里,关于使用二维数组表示N阶矩阵的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!