蓝桥杯c组--旋转图片

该文章提供了一段Java代码,用于将一个给定的二维数组(代表图片)顺时针旋转90度。代码首先创建原图和目标图的二维数组,然后通过遍历原图并将元素按旋转顺序填入目标图,最后输出旋转后的数组。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[问题描述]

图片旋转是对图片最简单的处理方式之一,在本题中,你需要对图片顺时针旋转 90 度。
我们用一个 n x m 的二维数组来表示一个图片,例如下面给出一个 3x4 的图片的例子:
1 3 5 7
9 8 7 6
3 5 9 7
这个图片顺时针旋转 90 度后的图片如下:
3 9 1
5 8 3
9 7 5
7 6 7

[代码]

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int row = scanner.nextInt();
        int col = scanner.nextInt();
        
        int[][] img1 = new int[row][col];//原二维数组
        int[][] img2 = new int[col][row];//旋转后的二维数组 行列交换
        
        for(int i = 0;i < img1.length;i++) {
            for(int j = 0;j < img1[i].length;j++) {
                img1[i][j] = scanner.nextInt();
            }
        }
        int time = 0;//用于读取原数组每一列的元素
        
        for(int i = 0;i < img2.length;i++) {
            int temp = row;//新数组读取完成后 
            for(int j = 0;j < img2[i].length;j++) {
                img2[i][j] = img1[--temp][time];//读取原数组每一行 time列的元素
            }
            time++;
        }
        //输出旋转后的二维数组
        for(int i = 0;i < img2.length;i++) {
            for(int j = 0;j < img2[i].length;j++) {
                System.out.print(img2[i][j]);
            }
            System.out.println();
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值