zoukankan      html  css  js  c++  java
  • CCF NOI1049 旋转图像

    问题链接CCF NOI1049 旋转图像




    时间限制: 1000 ms  空间限制: 262144 KB

    题目描述

      输入一个n行m列的黑白图像,将它顺时针旋转90度后输出。

    输入

      第一行包含两个整数n和m,表示图像包含像素点的行数和列数。1 <= n <= 100,1 <= m <= 100。
      接下来n行,每行m个整数,表示图像的每个像素点灰度。相邻两个整数之间用单个空格隔开,每个元素均在0~255之间。

    输出

      m行,每行n个整数,为顺时针旋转90度后的图像。相邻两个整数之间用单个空格隔开。

    样例输入

    3 3
    1 2 3
    4 5 6
    7 8 9
    样例输出

    7 4 1
    8 5 2
    9 6 3

    数据范围限制

      1 <= n <= 100,1 <= m <= 100。




    问题分析

      这是一个矩阵旋转问题,在程序中就是一个二维数组的值旋转输出问题

      关键是下标的映射关系,找到这种映射关系,程序就简单了。

    程序说明

      (略)

    要点详解
    • 先定义一个符号常量,再用它来定义二维数组,可以使得程序的通用性得到提高
    • 二维数组下标的映射关系。



    参考链接CCF201503-1 图像旋转(100分)

    100分通过的C语言程序:

    #include <stdio.h>
    
    #define N 100
    
    int a[N][N];
    
    int main(void)
    {
        int n, m, i, j;
    
        scanf("%d%d", &n, &m);
        for(i=0; i<n; i++)
            for(j=0; j<m; j++)
                scanf("%d", &a[i][j]);
    
        for(j=0; j<m; j++) {
            for(i=0; i<n; i++) {
                if(i != 0)
                    printf(" ");
                printf("%d", a[n - 1 - i][j]);
            }
            printf("
    ");
        }
    
        return 0;
    }



  • 相关阅读:
    Gem命令详解
    使用Ruby脚本部署Redis Cluster集群
    解决gem install redis报错
    Redis Cluster命令安装
    Redis Sentinel原理介绍与部署
    PyCharm单行多行代码注释快捷键
    windows下python安装与卸载
    MySQL通过SQL语句查看表的索引
    Redis主从复制
    MySQL开启binlog日志
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7563900.html
Copyright © 2011-2022 走看看