很久没敲过代码了,最近在刷ccf的题,经常遇到如下问题:
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
#define N 1005
int main(){
int n,m;
int a[N][N];
scanf("%d%d",&n,&m);
memset(a,0,sizeof(a));
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
scanf("%d",&a[i][j]);
for(int i=m;i>=1;i--){
for(int j=1;j<=n;j++){
printf("%d ",a[j][i]);
}
printf("\n");
}
return 0;
}
上述是一个矩阵逆时针旋转的输出程序,但是编译运行后控制台却打不出任何字符:
检查发现是二维数组过大,空间不够,若把N修改为100即可输入:
但题目要求N取值在[1,1000],故把二维数组定义为全局即可: