北大OJ百练——4075:矩阵旋转(C语言)

来源:互联网 发布:网络作家排名 编辑:程序博客网 时间:2024/05/22 06:09

百练的这道题很简单,通过率也达到了86%,所以我也就来贴个代码了。。。下面是题目:


不过还是说一下我的思路:

这道题对一个新来说,可能是会和矩阵的转置相混淆,这题并不是要我们去求矩阵的转置。

这题,我们只需要先得到这个矩阵,然后再按列的从小到大,行的从大到小来输出即可。顺便说一句,这是在做题,只要去把原矩阵旋转输出就行了,而在以后的软件程序中,我们最好还是用一个相同大小的矩阵来保存一份。指不定在程序的哪个地方还会用到原矩阵或是旋转后的矩阵。废话不多说,贴代码:

#include <stdio.h>#define MAXN 100int main(){int m, n;int i, j;int mat[MAXN][MAXN];scanf("%d", &m);while(m--){// 输入行和列均为n的n阶矩阵scanf("%d", &n);for(i = 0; i < n; ++i){for(j = 0; j < n; ++j){scanf("%d", &mat[i][j]);}}// 输出旋转后的矩阵for(i = 0; i < n; ++i){for(j = n - 1; j >= 0; --j){printf("%d", mat[j][i]);if(j == 0) printf("\n");else printf(" ");}}}return 0;}

原题的连接:4075:矩阵旋转


0 0
原创粉丝点击