📄 juzhen.cpp
字号:
#include<stdio.h>
#define N 5
void LowArr(int Lower[][N],int RowMaj[]) //将二维转换成一维
{ int i,j,Index;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
if(i>=j)
{ Index=i*(i+1)/2+j; //一维数组的下标
RowMaj[Index]=Lower[i][j];
}
}
void OldArr(int RowMaj[],int Lower[][N]) //恢复原下三角阵的面貌
{ int i,j,k=0;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
if(i<j) Lower[i][j]=0;
else Lower[i][j]=RowMaj[k++];
}
void main()
{ int A[5][5],Lower[5][5]={3,0,0,0,0, //原矩阵
7,5,0,0,0,
6,4,5,0,0,
8,3,2,1,0,
9,1,6,4,9};
int i,j,RowMaj[15];
LowArr(Lower,RowMaj); //转化为维存储
printf("Row major one dimensional array:\n");
for(i=0;i<15;i++)
printf("%3d",RowMaj[i]); //输出一维存储
printf("\n");
OldArr(RowMaj,A); //恢复成二维数组存储
printf("Lower triangular matrix:\n");
for(i=0;i<N;i++)
{ for(j=0;j<N;j++) printf("%3d",A[i][j]); //输出二维数组存储的矩阵
printf("\n");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -