如何用C编程语言将矩阵提升到幂

时间:2016-10-31 17:54:12

标签: c

我正在努力为我的大学里的任务筹集一个矩阵,但我遇到了问题。我正在使用此代码执行此操作,但它不起作用,我无法理解为什么。有人可以帮忙吗?

void RaiseThem(float x[][3], float y[][3], int b){ 
    int i,j,w,k;
    for( i = 0 ; i < 2 ; ++ i )
          for( j = 0 ; j < 2 ; ++ j ) 
           y[i][j] = ( i == j ) ;


    float temp[3][3];

    for(w=0;w<b;w++)
    {
        for(i=0;i<2;i++)
        {
            for(j=0;j<2;j++)
            {
                temp[i][j]=0;
                for(k=0;k<2;k++)
                {
                    temp[i][j]+=y[i][k]*x[k][j];
                }
            }
        }

        for(i=0;i<2;i++){
            for(j=0;j<2;j++)
            {
                y[i][j]=temp[i][j];
            }
        }
    }
}

1 个答案:

答案 0 :(得分:2)

你的循环范围太小了。

你的矩阵(大概)是3x3,所以索引是0-2。您正在检查i < 2j < 2,因此ij不能为2。

您需要将测试更改为i < 3j < 3