/********************************** 日期:2013-2-11* 作者:SJF0115* 题号: 九度OJ 题目1171:C翻转* 来源:http://ac.jobdu.com/problem.php?pid=1171* 结果:AC* 来源:2010年北京邮电大学计算机研究生机试真题* 总结:**********************************/#include<stdio.h>#include<stdlib.h>#include<string.h>int Matrix[5][5],Matrix2[5][5];//翻转4个数 b = 2 翻转9个数 b = 3//顺时针 a = 1 逆时针 a = 2//旋转int Rotate(int a,int b,int x,int y){ int i,j; //顺时针 if(a == 1){ //翻转4个数 if(b == 2){ for(i = x;i < x+b;i++){ for(j = y;j < y+b;j++){ Matrix[j][2*(x+1)-i-1] = Matrix2[i][j]; } } } //翻转9个数 else{ for(i = x;i < x+b;i++){ for(j = y;j < y+b;j++){ Matrix[j][2*(x+1)-i] = Matrix2[i][j]; } } } } //逆时针 else{ //翻转4个数 if(b == 2){ for(i = x;i < x+b;i++){ for(j = y;j < y+b;j++){ Matrix[2*(x+1)-j-1][i] = Matrix2[i][j]; } } } //翻转9个数 else{ for(i = x;i < x+b;i++){ for(j = y;j < y+b;j++){ Matrix[2*(x+1)-j][i] = Matrix2[i][j]; } } } } return 0;}int main(){ int a,b,x,y; //freopen("C:\\Users\\SJF\\Desktop\\acm.txt","r",stdin); while(scanf("%d %d %d %d %d",&Matrix[1][1],&Matrix[1][2],&Matrix[1][3],&Matrix[1][4],&Matrix[1][5]) != EOF) { int i,j; //输入数据 for(i = 1;i <= 5;i++){ Matrix2[1][i] = Matrix[1][i]; } for(i = 2;i <= 5;i++){ for(j = 1;j <= 5;j++){ scanf("%d",&Matrix[i][j]); Matrix2[i][j] = Matrix[i][j]; } } scanf("%d %d %d %d",&a,&b,&x,&y); //旋转 Rotate(a,b,x,y); //输出 for(i = 1;i <= 5;i++){ for(j = 1;j <= 5;j++){ if(j != 5){ printf("%d ",Matrix[i][j]); } else{ printf("%d\n",Matrix[i][j]); } } } } return 0;}
详细解决方案
9度OJ 题目1171:C翻转
热度:8955 发布时间:2013-02-26 00:00:00.0