北航上机:二维数组旋转

C翻转

http://www.nowcoder.com/questionTerminal/a591300637874f6ba2316a5fe3e94579

完成得很不优雅,比较暴力

#include <stdio.h>

int map[6][6];
int temp[6][6];

void copy() {
    for(int i=1; i<=5; i++)
        for(int j=1; j<=5; j++)
            temp[i][j]=map[i][j];
    return;
}

void convert(int A,int B,int i,int j) {
    copy();

    if(A==1) { //顺时针
        if(B==2) { //翻转四个数
            temp[i][j]=map[i+1][j];
            temp[i][j+1]=map[i][j];
            temp[i+1][j]=map[i+1][j+1];
            temp[i+1][j+1]=map[i][j+1];
        }
        if(B==3) { //9个数
            temp[i][j]=map[i+2][j];
            temp[i][j+1]=map[i+1][j];
            temp[i][j+2]=map[i][j];
            temp[i+1][j]=map[i+2][j+1];
            temp[i+1][j+2]=map[i][j+1];
            temp[i+2][j]=map[i+2][j+2];
            temp[i+2][j+1]=map[i+1][j+2];
            temp[i+2][j+2]=map[i][j+2];
        }
    }
    if(A==2) { //逆时针
        if(B==2) { //翻转四个数
            temp[i][j]=map[i][j+1];
            temp[i][j+1]=map[i+1][j+1];
            temp[i+1][j]=map[i][j];
            temp[i+1][j+1]=map[i+1][j];
        }
        if(B==3) { //9个数
            temp[i][j]=map[i][j+2];
            temp[i][j+1]=map[i+1][j+2];
            temp[i][j+2]=map[i+2][j+2];
            temp[i+1][j]=map[i][j+1];
            temp[i+1][j+2]=map[i+2][j+1];
            temp[i+2][j]=map[i][j];
            temp[i+2][j+1]=map[i+1][j];
            temp[i+2][j+2]=map[i+2][j];
        }
    }
    return;
}

int main() {
    int a,b,c,d,e;
    int A,B,C,D;
    while(scanf("%d %d %d %d %d",&a,&b,&c,&d,&e)!=EOF) {
        map[1][1]=a;
        map[1][2]=b;
        map[1][3]=c;
        map[1][4]=d;
        map[1][5]=e;

        for(int i=2; i<=5; i++) {
            for(int j=1; j<=5; j++)
                scanf("%d",&map[i][j]);
        }

        scanf("%d%d%d%d",&A,&B,&C,&D);
        convert(A,B,C,D);
        for(int i=1; i<=5; i++)
            for(int j =1; j<=5; j++) {
                printf("%d",temp[i][j]);
                if(j!=5)
                    printf(" ");
                else
                    printf("\n");
            }

    }
    return 0;
}
全部评论

相关推荐

zhiyog:哈哈哈哈哈哈哈哈哈哈哈哈哈
点赞 评论 收藏
分享
06-20 21:22
已编辑
门头沟学院 Java
纯真的河老师在喝茶:答应了就跑啊,实习随便跑啊,别被pua了,md就是找个廉价劳动力,还平稳过度正式工,到时候跟你说没转正
点赞 评论 收藏
分享
每晚夜里独自颤抖:把华北改为华南再试一试,应该就没啥问题了。改完可能都不用投,别人主动联系了。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-30 18:19
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务