行列互换

作者在 2010-05-24 19:14:12 发布以下内容
#include <stdio.h>
/*4、写一个函数,使给定的一个二维数组(3 x 3)转置,即行列互换。*/
void change(int *p);
main()
{
    int x,y;
    int arr[3][3]={{1,2,3},{4,5,6},{7,8,9}};
    for(x=0;x<3;x++)
    {
        for(y=0;y<3;y++)
        {
            printf("【%d】",arr[x][y]);    
        }    
        printf("\n");
    }    
    printf("行列交换后:\n");
    change(&arr[0][0]);
    for(x=0;x<3;x++)
    {
        for(y=0;y<3;y++)
        {
            printf("【%d】",arr[x][y]);    
        }    
        printf("\n");
    }    

    return 0;
}

void change(int *p)
{
    int i,j,k,m;
    for(i=0;i<3;i++)
    {
        k=*(p+i);
        *(p+i)=*(p+6+i);
        *(p+6+i)=k;    
    }
    for(j=0;j<3;j++)
    {
        m=*(p+j*3);
        *(p+j*3)=*(p+j*3+2);
        *(p+j*3+2)=m;    
    }    
}
 
学习历程 | 阅读 870 次
文章评论,共0条
游客请输入验证码