题目分析:
该题是对一个输入的矩阵逆时针旋转之后求得到的矩阵,对于矩阵想到可以使用二维数组,但是这里的题目要求则不能使用数组天然的位序,(关于数组天然位序的应用,可以查看我的博客:https://blog.csdn.net/AIMINdeCSDN/article/details/103347659) ,那么关键就在于对二维数组的构造,以及旋转操作,分析逆时针旋转可以发现,行序变列序,也就是说,第一行在实际输出时需要按第一列输出,但是问题在于第一列他不能直接输出,所以可以从行数末尾从后往前输出,先减小行数再减小列数,使用二重循环来实现。
C语言源程序:
#include<stdio.h>
int main()
{
int m,n,i,j,v;
scanf("%d%d",&m,&n);
short num[m][n];
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
scanf("%hd",&v);
num[i][j]=v;
}
}
//先减小行数在减小列数
while(j--)
{
//行数要从前往后
for(i=0;i<m;