練習7-8 方陣循環右移 (20分)


本題要求編寫程序,將給定n×n方陣中的每個元素循環向右移m個位置,即將第0、1、⋯、n1列變換為第nm、nm+1、⋯、n1、0、1、⋯、nm1列。

輸入格式:

輸入第一行給出兩個正整數m和n(1)。接下來一共n行,每行n個整數,表示一個n階的方陣。

輸出格式:

按照輸入格式輸出移動后的方陣:即輸出n行,每行n個整數,每個整數后輸出一個空格。

輸入樣例:

2 3
1 2 3
4 5 6
7 8 9
 

輸出樣例:

2 3 1 
5 6 4 
8 9 7 


#include<stdio.h>
int main()
{
    int n,m;//n指n*n,m指向右移動m個位置
    scanf("%d%d",&m,&n);
    if(n>=1&&n<=6)
    {
        int a[n][n];
        //int b[n][n];
        int i,j;
        for(i=0;i<n;i++)
        for(j=0;j<n;j++)
        scanf("%d",&a[i][j]);
        m=m%n;
        for(i=0;i<n;i++)
        {
            for(j=0;j<n;j++)
            {
            printf("%d ",a[i][(n-m+j)%n]);
                        
            }
            printf("\n");
        }
        
     }
    return 0;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM