本文共 596 字,大约阅读时间需要 1 分钟。
该题是对一个输入的矩阵逆时针旋转之后求得到的矩阵,对于矩阵想到可以使用二维数组,但是这里的题目要求则不能使用数组天然的位序,(关于数组天然位序的应用,可以查看我的博客:) ,那么关键就在于对二维数组的构造,以及旋转操作,分析逆时针旋转可以发现,行序变列序,也就是说,第一行在实际输出时需要按第一列输出,但是问题在于第一列他不能直接输出,所以可以从行数末尾从后往前输出,先减小行数再减小列数,使用二重循环来实现。
#includeint main(){ int m,n,i,j,v; scanf("%d%d",&m,&n); short num[m][n]; for(i=0;i
在上述程序中,对于数组的定义是可以直接将scanf赋值后的变量作为声明的,还可以直接在定义数组前将并阿联复制也是一样的效果,下面时用define定义的最大数组长度,但是当我使用int定义数组变量时发现,C语言中不能容纳1000*1000的int型数组,随后我又改为short型才正确通过。
#include#define N 1000int mmain(){ int m,n,i,j,v; //数组类型需要改为short型 short num[N][N]; scanf("%d%d",&m,&n); for(i=0;i
转载地址:http://zchbb.baihongyu.com/