c语言与数组有关的问题

c语言如何编程将二维3✖️3的数组a中的每一列元素向右移动一列,而原来最右边的那一列元素移到最左边

新定义一个3*3循环修改一下赋值回去就可以了,或者只备份第三列循环一下就ok了

img

#include<stdio.h>

int main()
{ 
    int a[3][3], b[3], i, j;

    for(i = 0; i < 3; i++)
       for(j = 0;j < 3; j++)
           scanf("%d",&a[i][j]);
           
    printf("Input:\n");   
    for(i = 0; i < 3; i++)
    {
        for(j = 0;j < 3; j++)
        printf("%d ",a[i][j]); 
        
        printf("\n");
    }
         
    // 备份第三列 
    for(i = 0; i < 3; i++)
    {
        b[i] = a[i][2];
    }
    
    // 调换
    for(i = 0; i < 3; i++)
    {
        a[i][2] = a[i][1];
        a[i][1] = a[i][0];
        a[i][0] = b[i];
    }
    
    printf("Output:\n");   
    for(i = 0; i < 3; i++)
    {
        for(j = 0;j < 3; j++)
        printf("%d ",a[i][j]); 
        
        printf("\n");
    }    
    
}

#include<stdio.h>
int main()
{
    int a[3][3],i,j,t;
    for(i=0;i<3;i++)
       for(j=0;j<3;j++)
           scanf("%d",&a[i][j]);
    for(i=0;i<3;i++)
    {
        t=a[i][2];
        for(j=2;j>0;j--)
           a[i][j]=a[i][j-1];
         a[i][0]=t;
    }
    for(i=0;i<3;i++)
    {
       for(j=0;j<3;j++)
       {
             printf("%d ",a[i][j]);
       }
       printf("\n");
    }
    return 0;
}