ITPub博客

首页 > 应用开发 > C/C++ > 实现二维数组的行列互换

实现二维数组的行列互换

原创 C/C++ 作者:代码女民工 时间:2021-11-05 14:49:07 0 删除 编辑

#include<stdio.h>


void fun( int*,size_t );

void swap( int*,int* );


void print( const int*,size_t,size_t );


int main( void )

{

    

    int arr[][3]=

    {

        {1,2,3},

        {4,5,6},

        {7,8,9}

    };

    

    const size_t size=sizeof (arr)/sizeof (*arr);

    

    fun(*arr,size);

    print(*arr,size,size);

    

    return 0;

}


void fun( int* arr,size_t size )

{

             

    size_t i=0;

    size_t j=1;

    

    if (size==0)

        return ;


    for (;i!=size-1;++j!=size?1:(j=++i+1))

        swap(arr+size*i+j,arr+size*j+i);        

}


void swap( int* p,int* q )

{

    const int t=*p;

    

    *p=*q;

    *q=t;

}


void print( const int* arr,size_t col,size_t row )

{

    const size_t size=(col+1)*row;

    

    size_t i;    

    

    for (i=0;i!=size;++i)

    {

        const size_t m=i%(row+1);

        const size_t n=col*(i/col)+i%row-i/(row+1);

       

        printf("%-4d\000\n"+5*(m==row),*(arr+n));

    }

}


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/70007056/viewspace-2840810/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2021-09-17

  • 博文量
    38
  • 访问量
    10365