⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 juzhen.cpp

📁 C++的电子教程
💻 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 + -