sicily 6773. 用指针交换两个矩阵

Description
 请实现一个函数,用于交换两个M * N的int类型矩阵的所有数值,其函数原型如下:
void exchange(int **a, int **b, int M, int N);

Hint
 注意:本题只需提交exchange函数的函数体,无需包含main函数以及其他部分代码,例如,只提交以下内容(仅供参考):
void exchange(int **a, int **b, int M, int N)
{
    printf("I am a student from SYSU!\n");
}

 

可以用利用多维矩阵在底层连续存储的原理,只用一层循环做(不过如果测试用例的矩阵带冗余的话就不行,这个可以)。也可以用两层循环做,就是普通的当成二维数组

View Code
 1 void exchange(int **a, int **b, int M, int N)
 2 {
 3     int temp;
 4     int i;
 5     int *ptr1 = *a;
 6     int *ptr2 = *b;    
 7     
 8     for ( i = 0; i < M * N; i++ )
 9     {
10         temp = *(ptr1 + i);
11         *(ptr1 + i) = *(ptr2 + i);
12         *(ptr2 + i) = temp;
13     }
14     
15     return;
16 }

 

posted @ 2012-12-11 21:36  Joyee  阅读(261)  评论(0编辑  收藏  举报