试题描述:
试题编号 | 201503-1 |
试题名称 | 图像旋转 |
时间限制 | 5.0s |
内存限制 | 256.0MB |
问题描述 |
问题描述 旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度。 输入格式 输入的第一行包含两个整数n, m,分别表示图像矩阵的行数和列数。 输出格式 输出m行,每行包含n个整数,表示原始矩阵逆时针旋转90度后的矩阵。 样例输入 2 3 样例输出 3 4 评测用例规模与约定 1 ≤ n, m ≤ 1,000,矩阵中的数都是不超过1000的非负整数。 |
参考代码:
#include
using namespace std;
int main(){
int n,m;
cin>>n>>m;
int a[n][m];
int b[m][n];
for(int i=0;i<n;i++){
for(int j=0;j>a[i][j];
}
}
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
b[i][j]=a[j][m-i-1];
cout<<b[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
结果:
问题:
在C/C++中对于在函数内定义的变量(包括main()函数)都是在程序的栈空间内分配的(这个空间相对有限)如果定义一个内存使用量达到MB级别的数组一般就会Stack Overflow,RE了。所以遇到大数组的时候建议定义成全局变量,这样就可以在编译的时候就为它们分配好足够的空间。
参考代码:
#include
using namespace std;
int a[1000][1000];
int main(){
int n,m;
cin>>n>>m;
for(int i=0;i<n;i++){
for(int j=0;j>a[i][j];
}
}
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
cout<<a[j][m-i-1]<<" ";
}
cout<<endl;
}
return 0;
}
结果:
难度等级:
第一级(基本没有难度)
注意易错点
作者:<木木>