北航上机:二维数组旋转

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;
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
06-27 15:07
点赞 评论 收藏
分享
Southyeung:我说一下我的看法(有冒犯实属抱歉):(1)简历不太美观,给我一种看都不想看的感觉,感觉字体还是排版问题;(2)numpy就一个基础包,机器学习算法是什么鬼?我感觉你把svm那些写上去都要好一点。(2)课程不要写,没人看,换成获奖经历;(3)项目太少了,至少2-3个,是在不行把网上学习的也写上去。
点赞 评论 收藏
分享
Ncsbbss:又想干活又想要工资,怎么什么好事都让你占了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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