数学问题——旋转图像

知识点

  • 字符数组存储字符串
  • 字符串转换为 int 类型数组 str[i]-'0'
  • 数组直接定义好大小,否则会出现 bug

int arr[55][55] 而不是 int arr[N][M]

  • 定义图像反转方法
  1. 传入参数

行、列、待转换数组、结果数组

  1. 形参用引用形式返回 int (&ans)[55][55]
  2. 图像旋转旋转 90° ,其他可用 90° 转化

后来行号 = 原来列号

后来列号 = 行数 - 1- 原来行号

  • switch case 语句的使用

代码

/*
设置数组时直接定义比输入规模大的数组不要 int arr[N][M] 
*/

#include
#include
using namespace std;

void convert_0(int N, int M, int arr[55][55], int (&ans)[55][55]){
    
    for(int i=0;i>T;
    
    while(T--){
        
        memset(arr, 0, sizeof(arr)); //初始化
        memset(ans, 0, sizeof(ans));
        memset(str, '0', sizeof(str));
         
        cin>>N>>M;
        
        
        for(int i=0;i>str;
            for(int j=0;j>angle;
        
        switch(angle){
            
            case 0:
                convert_0(N, M, arr, ans);
                print(N, M, ans);
                break;
            case 90:
                convert_90(N, M, arr, ans);
                print(M, N, ans);
                break;
            case 180:
                convert_90(N, M, arr, ans);
                convert_90(M, N, ans, arr);
                print(N, M, arr);
                break;
            case 270:
                convert_90(N, M, arr, ans);
                convert_90(M, N, ans, arr);
                convert_90(N, M, arr, ans);
                print(M, N, ans);
                break;
            default:
                break;
        }
    } 
}

你可能感兴趣的:(数学问题——旋转图像)