【正确答案】正确答案:n×n的上三角矩阵以行序为主存储在一维数组b中,其位置kl和元素在矩阵中的下标i和j有确定关系:kl=(i木(2n一i+3))/2+(广f+1)=i(2n—i一1)/2+j (i≤j,0≤i,j
2和元素在下三角矩阵中的下标i和j也有确定关系: k2=i(i+1)/2+j (j≤i) (22—2) 得i=(一3+sqrt(9+8*k))/2 l和j=k-i(i+1)/2。 从(22—2)式,对每个k2(其值域为1≤k≤n(n+1)/2),计算出i和j,然后,用求出的i和j,i和j互换,代入(22一1)式,计算出k2,该k2位置的值就应存入k2中。 for(k=0;k(n*(n+1)/2;k++) (i=(int)((一3+sqrt(9+8*k))/2+0.9); //计算元素c[k]在矩阵中的下标i和j j=k-i*(i+1)/2; k1=j*(2*n—j一1)/2+i; //矩阵中下标i和j的元素在数组b中的序号 C[k]=b[k1]; }
【答案解析】