当前位置: 代码迷 >> C语言 >> 上三角[二维数组]以行转换<一维数组>
  详细解决方案

上三角[二维数组]以行转换<一维数组>

热度:100   发布时间:2008-05-13 13:00:01.0
上三角[二维数组]以行转换<一维数组>
void main(void) { int Upper[5][5]{..............}; int Index; int i,j;  intRoMajor[15];
.....
....

....//以下数组数据转换
  for(i=0;i<5;i++)
    for(j=0;j<5;j++)
     if(i<=j) //??疑问
      {
        Index=(11.i)*i/2+(j-i);
        RowMajor[Index]=Upper[i][j];
      }
}
搜索更多相关的解决方案: 三角  void  int  main  Upper  

----------------解决方案--------------------------------------------------------
没能解释下的 ?
----------------解决方案--------------------------------------------------------
你不是要上三角吗?对角线上i==j;下三角是i>j,上三角是i<j
----------------解决方案--------------------------------------------------------
if语句判断的是什么,不是很清楚
----------------解决方案--------------------------------------------------------
判断只有当i<j的时候才进行转换..表示只转换上三角元素
----------------解决方案--------------------------------------------------------
哦,明白了,N*N方阵 谢谢
----------------解决方案--------------------------------------------------------
稀疏数组时 为什么:
  
  for(i=0;i<9;i++)
   for(j=0;j<9;j++)
    if(data[i][j]!=0)
     {
       Index++; //增加索引值
       CompressData[Index][0]=i; //i 不存入CompressDtat[0][0]??
       CompressData[Index][1]=j;
       CompressDtat[Index][2]=data[i][j];
    CompressData[0][0]=9;//原数组的行数  CompressData[0][1]=7;  //原数组的列数 CompressData[0][2]=Index; //使用元素的个数

******请看上面的存行、列以及元素使用个数已经占了 CompressDtat[0][0]\[0][1]\[0][2]  如果这样的话,那先存入的是都往后移动了?
----------------解决方案--------------------------------------------------------
  相关解决方案