第6行包含两个整数m、n,以一个空格分开。(1 <= m,n <= 5) 题目分析: 我们知道这题要用二维数组来写 但是对行的交换,我们可以用一种特殊的方法。 标准库里,有一个函数叫做memcpy,作用是进行数组的拷贝。 memcpy(int *dest, int *src, int size) 作用是把src数组开始size个元素拷贝到dest数组中 因为是数组,传递函数参数时需要用指针传递。 但是一定有人会问 “但是我们使用的是二维数组,无法把行单独取出来进行参数传递来拷贝” 那你就错了 二维数组长这样 (图画的不是很好,见谅) 实际上,这个多维数组可以看成是“数组的数组”,也就是由4个一维数组构成的数组。 所以,如果我们定义了一个数组a[5][5] 其中,这个数组有五个一维数组组成,分别是a[0],a[1],a[2],a[3],a[4]。 每一个数组都可以拿出来当作一维数组进行使用。 所以,回到题目,我们进行行的交换,实际上只需要将一维数组进行交换即可。 最核心的部分如下:(注意数组的下标和行列差1,所以需要将x,y减去1)
剩余部分的代码应该很简单,在此就不挂出来了,就是数组的读入和输出而已。 完。
|
|