注册 登录
编程论坛 C语言论坛

谁能帮忙改改错

楚子航992 发布于 2020-06-19 20:10, 1689 次点击
#include <stdio.h>
#include <stdlib.h>

int main()
{
    void test(int *a,int p,int n);
    int a[12]={1,1,1,1,1,1,1,1,1,1,1,1};
    int p=3;
    int n=4;
    test(a,p,n);
}

void test(int *a,int p,int n){
    int *b;
    int m[p*p];
    b=m;
    for(int i1=0;i1<p*p;i1++){
        for(int i2=0;i2<n;i2++){
            *(b+i1)+=*(a+i2*p+(i1/p))**(a+i2*p+(i1%p));
        }
    }
    b=m;
    for(int i1=0;i1<p*p;i1++){
        printf("%d  ",*(b+i1));
    }
}
2 回复
#2
fulltimelink2020-06-19 21:27
没看懂要弄啥,  m并没初始化直接就使用了
#3
rjsp2020-06-19 22:22
既不说要改什么错误,也不肯说出题目。

看起来像 矩阵与其自身的旋转矩阵相乘
程序代码:
#include <stdio.h>

void test( size_t row, size_t col, const int a[row][col] )
{
    for( size_t i=0; i!=col*col; ++i )
    {
        int m = 0;
        for( size_t j=0; j!=row; ++j )
            m += a[j][i/col] * a[j][i%col];
        printf( "%d%c", m, " \n"[i%col+1==col] );
    }
}

int main( void )
{
    int a[4][3] = { {1, 1, 1}
                  , {1, 1, 1}
                  , {1, 1, 1}
                  , {1, 1, 1} };
    test( sizeof(a)/sizeof(*a), sizeof(*a)/sizeof(**a), a );
}
1