注意右移时超过范围的情况
for (j = 0; j < n; j ++) {
temp[(j + (m % n)) % n] = a[i][j]; }
右移可设置新数组存储,比右移交换易理解
for (j = 0; j < n; j ++) {
a[i][j] = temp[j]; }
#include<stdio.h>
int main()
{
int n,m;
scanf("%d%d",&m,&n);
int a[10][10],temp[10];
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
}
for(i=0;i<n;i++)
{
for (j = 0; j < n; j ++) {
temp[(j + (m % n)) % n] = a[i][j];
}
for (j = 0; j < n; j ++) {
a[i][j] = temp[j];
}
for(j=0;j<n;j++)
printf("%d ",a[i][j]);
printf("\n");
}
}