• 队列变换


    include

    using namespace std;

    // 函数rotateLeft:矩阵循环左移
    // 参数:a-100*100的二维数组,用来存储n行n列的数组(n<100),存储在其n-1行和n-1列,
    // m-循环左移的位数(0<m<n)
    // 返回值:无,循环左移的结果写入原二维数组中
    // 说明:传递多维数组时,形式参数中,除了第一维外,其它维的大小必须给出
    // 方便编译器计算每个数组元素的地址
    void rotateLeft(int a[][100],int n,int m);

    int main()
    {
    int a[100][100]; // 定义存储二维数组的空间
    int n, m;
    cin >> n >> m; // 输入n和m

    // 输入n*n的矩阵,存储在数组a的~n-1行和~n-1列
    int i, j;
    for(i = 0; i < n; i++)
        for(j = 0; j < n; j++)
            cin >> a[i][j];
    
    // 循环左移
    // 说明:传递多维数组时,实在参数只需要给出数组名就可以了
    rotateLeft(a,n,m);
    
    // 输出循环右移的结果
    for(i = 0; i < n; i++)
    {
        for(j = 0; j < n; j++)
            cout << " " << a[i][j];
        cout << endl;
    }
    return 0;
    

    }

    void rotateLeft(int a[][100],int n,int m)
    {
    // 请在此添加代码,实现函数rotateLeft
    /********** Begin *********/
    int b[n][n]={0},i,j,k;
    //处理左半部分
    for(i=0,j=m;j<n;i++,j++){
    for(k=0;k<n;k++){
    b[k][i]=a[k][j];
    }
    }
    //处理右半部分
    for(j=0;i<n;i++,j++){
    for(k=0;k<n;k++){
    b[k][i]=a[k][j];
    }
    }
    //处理原来的数组
    for(i=0;i<n;i++){
    for(j=0;j<n;j++){
    a[i][j] = b[i][j];
    }
    }

    /********** End **********/
    

    }

  • 相关阅读:
    Netty优雅退出
    使用FFmpeg切片HLS流
    Golang协程和线程区别
    00 PyTorch 开发环境搭建
    SpringBoot + LibreOffice + Hutool 实现附件预览简单示例
    css 注意事项 BFC
    css 伪类 属性选择器 优先级
    html img 标签图片格区别
    redis集群
    Redis RDB与AOF
  • 原文地址:https://www.cnblogs.com/lightice/p/12692085.html
Copyright © 2020-2023  润新知