思路1:
每次右移一格,总共右移m次。
int main()
{
int m, n, arr[99][99];
scanf("%d %d", &m, &n);
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
scanf("%d", &arr[i][j]);
}
}
for (int i = 0; i < m; i++)
{
for (int k = 0; k < n; k++)
{
int tmp = arr[k][n - 1];
for (int j = n - 1; j >= 1; j--)
{
arr[k][j] = arr[k][j - 1];
}
arr[k][0] = tmp;
}
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
思路2:
直接在输入的时候动手脚,直接挪动。
int main3()
{
int m, n,arr[99][99];
scanf("%d %d", &m, &n);
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
scanf("%d", &arr[i][(j + m) % n]);
}
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}