上三角矩阵 A 的上三角元素已按行主序连续存放在数组 B 中,将 B 中元素按列主序连续存放至数组 C 中.

本文介绍如何将一个n*n的上三角矩阵,其上三角元素按行主序存储在数组B中,通过算法转换为按列主序连续存储在数组C中。举例说明了n=3时的矩阵转换过程,并解析了元素在C中的存储位置计算方法。
摘要由CSDN通过智能技术生成

原题:设已知有一个 n*n 的上三角矩阵 A 的上三角元素已按行主序连续存放在数组 B 中. 设计一个算法将 B 中元素按列主序连续存放至数组 C 中.
例:设 n = 3;

         |1 2 4|
 A=   |0 3 5|        B=(1,2,4,3,5,6), C=(1,2,3,4,5,6).
         |0 0 6|,

分析:对于 A 中元素 a[i][j] 易知在 C 中的存储位置为 j*(j+1)/2 + i, 我们可按行主序进行循环,对于 i, j 坐标,设在 B 中的下标为 k, 这样可求行 C 的值.

#include<iostream>
#include<time.h>
#include<iomanip>
#define N 5
using namespace std;
#define ElemType int

int CreateArray(ElemType a[N][N], ElemType b[N*N])
{//生成一个数据元素随机生成的二维数组

	int i, j, n = 0;
	srand((unsigned)time(NULL));

	for(i=0;i<N;i++)
	{
		for(j=i;j<N;j++)
		{
			a[i][j]=rand()%99 + 6;
			b[n++]=a[i][j];//将二维数组 a 中元素按行主序存到数组 b 中
		}
	}

	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Storm-Shadow

你的鼓励将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值