201503-1-影象旋轉-CCF
阿新 • • 發佈:2018-11-14
題目:http://118.190.20.162/view.page?gpid=T27
解題思路:動態分配記憶體空間,直接模擬是得不了滿分的。
# include <stdio.h> # include <stdlib.h> # include <memory.h> int main(){ int n,m; scanf("%d%d",&n,&m); int **input=(int**)malloc(sizeof(int*)*n);//給行分配空間 for(int i=0;i<n;i++){ input[i]=(int *)malloc(sizeof(int)*m);//給列分配空間 memset(input[i],0,sizeof(int)*m); } int **output=(int**)malloc(sizeof(int*)*m); for(int i=0;i<m;i++){ output[i]=(int *)malloc(sizeof(int)*n); memset(output[i],0,sizeof(int)*n); } for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ scanf("%d",&input[i][j]); output[m-j-1][i]=input[i][j]; } } for(int i=0;i<m;i++){ for(int j=0;j<n;j++){ printf("%d",output[i][j]); if(j!=n-1)printf(" "); } printf("\n"); } for(int i=0;i<n;i++){///別忘了釋放記憶體 free(input[i]); } free(input); for(int i=0;i<m;i++){ free(output[i]); } free(output); return 0; }