Problem Description After the 32nd ACM/ICPC regional contest, Wiskey is beginning to prepare for CET-6. He has an English words table and read it every morning. One day, Wiskey's chum wants to play a joke on him. He rolling the table, and tell Wiskey how many time he rotated. Rotate 90 degrees clockwise or count-clockwise each time. The table has n*n grids. Your task is tell Wiskey the final status of the table. Input Each line will contain two number. The first is postive integer n (0 < n <= 10). The seconed is signed 32-bit integer m. if m is postive, it represent rotate clockwise m times, else it represent rotate count-clockwise -m times. Following n lines. Every line contain n characters. Output Output the n*n grids of the final status.
思路:你把这个矩阵写在纸上,然后转个90度,180度,270度,360度就可以发现一个规律。
那就是m=m%4;
1.当m=0的时候,
2当m==1||m==-3的时候
3当m==2||m==-2的时候
4.当m==3||m==-1的时候
然后就可以做了。
我在做的时候定义的数组为INT,然后输出的时候什么都数不出来,然后发现自己弄得居然是int,要改成char.
#include<stdio.h> int main(){ int n,m; while(scanf("%d %d",&n,&m)!=EOF){ int i,j; char f[101][101]; for(i=1;i<=n;i++){ getchar(); for(j=1;j<=n;j++){ scanf("%c",&f[i][j]);} } m=m%4; if(m==0){ for(i=1;i<=n;i++){ for(j=1;j<=n;j++){ printf("%c",f[i][j]); } printf("\n"); } } if(m==1||m==-3){ for(j=1;j<=n;j++){ for(i=n;i>=1;i--){ printf("%c",f[i][j]); } printf("\n"); } } if(m==2||m==-2){ for(i=n;i>=1;i--){ for(j=n;j>=1;j--){ printf("%c",f[i][j]); } printf("\n"); } } if(m==3||m==-1){ for(j=n;j>=1;j--){ for(i=1;i<=n;i++){ printf("%c",f[i][j]); } printf("\n"); } } } return 0; }