原题链接:[编程入门]二维数组的转置
借此题复习一下二维数组作为函数参数的情况。
因为二维数组名是指向它第一个元素的指针,而二维数组的元素为一维数组,所以二维数组名就是一个数组指针。故若要将二维数组名作为参数传入调用函数时,形参应该写为一个数组指针的形式。
例如:
int matrix[3][10]; ... func2(matrix); 这里参数matrix的类型是指向包含10个整型元素的数组的指针,可知func2的原型可能是以下两种中的一种: void func2(int (*mat)[10]); //ok! void func2(int mat[][10]); //ok!
参考代码如下:
#include <stdio.h> //转置函数 void transpose(int (*array)[3]) { int tmp[3][3]; //定义一个临时数组存放转置矩阵 int i, j; for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { tmp[i][j] = array[j][i]; } } //修改原数组 for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { array[i][j] = tmp[i][j]; } } } int main() { int array[3][3]; int i, j; for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { scanf("%d", &array[i][j]); } } transpose(array); for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { printf("%d ", array[i][j]); } printf("\n"); } return 0; }
0.0分
3 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复