/*********************************
* 日期: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;
}
题目1171:C翻转
九度OJ 题目1171:C翻转
最新推荐文章于 2019-03-16 11:22:50 发布