代码如下:
#include<stdio.h>
int main(void){
int m,n,i,j,k;
scanf("%d %d",&m,&n);
int a[n][n],b[m];
m=m%n; //应对 m >= n 的情况
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<m;j++) //将后 m 个数字存储与数组b[]中
b[j]=a[i][n-m+j];
for(j=n-m-1;j>=0;j--)
a[i][j+m]=a[i][j]; //剩余数据依次后移m位
for(j=0;j<m;j++)
a[i][j]=b[j]; //将b[]中的数据存入补足a[i][]的前m位
for(j=0;j<n;j++)
printf("%d ",a[i][j]);
printf("\n");
}
return 0;
}
在电脑上运行了下,全部正确。