【求助】方阵循环右移,请道友大显身手!!!
读入两个正整数m和n(1<=n<=6),再读入n阶的方阵a,将该方阵中的每个元素循环向右移m个位置,即将第0、1···n-1列变为n-m、n-m+1···n-1、0、1、n-m-1列移动后的方阵可以存到另一个二维数组中。 1 2 3 右移1 2 3 14 5 6 5 6 4
7 8 9 8 9 7
我写的好像不怎么好,道友有高见么,我是小白来的。
#include"stdio.h"
int main()
{
int a[6][6],b[6][6];
int i,j,n,m,c;
scanf("%d,%d",&n,&m);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
a[i][j]=i*n+j+1;
for(i=0;i<n;i++)
for(c=m,j=0;j<n-m;j++,c++)
b[i][j]=a[i][c];
for(i=0;i<n;i++)
for(c=0,j=n-m;j<n;j++,c++)
b[i][j]=a[i][c];
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf(" %2d",b[i][j]);
printf("\n");
}
return 0;
}
[此贴子已经被作者于2017-12-8 20:11编辑过]