C语言不会用了,求助,急

2019-10-15 22:04发布

想找个矩阵运算的函数,在网上搜了个 矩阵转置函数,参数是二重指针,没这么玩过,想求教我写函数时应该怎么写输入参数?比如定义一个二维数据test1[3][3]  = {{1,1,1},{2,2,2},{3,3,3}};
想通过下面的函数转到test2[3][3]中,怎么写?怎么试都在报错。一重的指的话就直接matrix_t(test1,test2,3,3);但是二重。。。。不会了

  • void matrix_t(double **a_matrix, const double **b_matrix, int krow, int kline)  
  • ////////////////////////////////////////////////////////////////////////////  
  • //  a_matrix:转置后的矩阵  
  • //  b_matrix:转置前的矩阵  
  • //  krow    :行数  
  • //  kline   :列数  
  • ////////////////////////////////////////////////////////////////////////////  
  • {  
  •     int k, k2;     
  •   
  •     for (k = 0; k < krow; k++)  
  •     {  
  •         for(k2 = 0; k2 < kline; k2++)  
  •         {  
  •             a_matrix[k2][k] = b_matrix[k][k2];  
  •         }  
  •     }  
  • }  


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
tanruiqiang
1楼-- · 2019-10-17 17:37
 精彩回答 2  元偷偷看……
CallMeWater
2楼-- · 2019-10-17 19:08
[mw_shl_code=c,true]void matrix_t(uint8_t (*a_matrix)[3], const uint8_t (*b_matrix)[3], int krow, int kline)  
{  
    int k, k2;     
  
    for (k = 0; k < krow; k++)  
    {  
        for(k2 = 0; k2 < kline; k2++)  
        {  
            a_matrix[k2][k] = b_matrix[k][k2];  
        }  
    }  
}
[/mw_shl_code]
[mw_shl_code=c,true]                uint8_t                MatrixA[3][3] = { 11, 12, 13,
                                                                                                                          21, 22, 23,
                                                                                                                          31, 32, 33 };
                uint8_t                MatrixB[3][3] = { 0 };

matrix_t(MatrixB, MatrixA, 3, 3);[/mw_shl_code]
用数组指针作形参,这种写法可以

一周热门 更多>