写一个函数,将一个3*3的整型矩阵转置,用指针编写

写一个函数,将一个3*3的整型矩阵转置

  • 代码如下:
#include
void reverse(int *p);
int main()
{
    int a[3][3],*p=&a[0][0],i,j,k,t;
    printf("please input a:\n");
    for(i=0;i<3;i++){
        for(j=0;j<3;j++){
            scanf("%d",&a[i][j]);
        }
    }
    reverse(p);
    for(t=0;t<3;t++){
        for(k=0;k<3;k++){
            printf("%d  ",a[t][k]);
        }
        printf("\n");
    }
    return 0;
}
void reverse(int *p)
{
    int i,j,t;
    for(i=0;i<3;i++){
        for(j=i;j<3;j++){
            t=*(p+(i*3)+j);
            *(p+(i*3)+j)=*(p+(j*3)+i);//因为p是3行3列的元素,*(p+j*3+i)==a[j][i];
            *(p+(j*3)+i)=t;
        }
    }
}


  • 运行结果如下:
    写一个函数,将一个3*3的整型矩阵转置,用指针编写_第1张图片

你可能感兴趣的:(c语言算法,矩阵,c#,算法)