zoukankan      html  css  js  c++  java
  • 队列变换

    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 **********/
    

    }

  • 相关阅读:
    cookie
    手写Promise/Promise.all/promise.race
    Hbuilder如何真机调试?
    什么是深拷贝?什么是浅拷贝?如何实现深拷贝?
    Vue.set()?怎么用?
    vueRouter怎么用?
    Vue如何实现组件间通信?
    reduce()累加器
    filter()数组遍历
    map()数组遍历
  • 原文地址:https://www.cnblogs.com/lightice/p/12692085.html
Copyright © 2011-2022 走看看