【C语言指南】矩阵转置问题
【摘要】 16 关于输出的处理逻辑,根据参考例子,其实是将n行m列变成m行n列,并且在输出的时候,每个元素的行号和列号交换位置
目录
问题描述
思路逐步分析
首先,根据输入的描述,第一行输入的是两个整数n和m,分别表示一个矩阵(二维数组)的行和列,并且行和列不超过10
根据要求,先创建两个变量n和m用来存储第一行输入的行数和列数
接着,从2到n+1行,每行输入m个整数,输入整数的范围刚好就是int类型的取值范围,用空格分隔,共输入n*m个数
创建一个10*10整型二维数组来存储矩阵(因为一些编译器不支持C99标准的变长数组,既然行数和列数不会超过10,所以这里直接创建10*10的二维数组并初始化)
有了内存空间来存储元素,接下来就是处理第2到n+1行的输入了
使用两层for循环来实现每读入一个元素之后放在n*m的二维数组的对应位置
行数和列数分别为n和m,所以循环的范围——行号从0到n-1,列号从0到m-1
至此,输入已经完成,再来处理输出
关于输出的处理逻辑,根据题目的参考例子,其实是将n行m列变成m行n列,并且在输出的时候,每个元素的行号和列号交换位置
依然用来两个for循环来实现,外层变成m层循环,内层变成n层循环,并且在输出数组元素的时候,下标的行号和列号互换
注意:打印的时候不要忘记在每行结束添加换行
完整代码实现
结果测试
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)