while True:
try:
n, m = map(int, input().split())
l = list()
for i in range(n):
l.append(list(map(int, input().split())))
for x in range(m):
data = []
for i in range(n):
t = []
for j in range(n):
t.insert(0, l[j][i])
data.append(list(t))
t.clear()
l = data
for i in range(n):
for j in range(n-1):
print(l[i][j], end=" ")
print(l[i][n-1])
except:
break
这个循环会不会超时:
#include <stdio.h>
#define N 20
int main()
{
int n,m,i,j,k,a[N][N];
while(scanf("%d %d", &n, &m) == 2 && (getchar()) != EOF){
for(i = 0;i < n; i++){
for(j = 0;j < n; j++)
scanf("%d", &a[i][j]);
}
for (k = 0; k < m; k++){
for (i = 0; i < (n + 1) / 2; i++)
{
for (j = 0; j < n / 2; j++) {
int temp = a[i][j];
a[i][j] = a[n - 1 - j][i];
a[n - 1 - j][i] = a[n - 1 - i][n - 1 - j];
a[n - 1 - i][n - 1 - j] = a[j][n - 1 - i];
a[j][n - 1 - i] = temp;
}
}
}
for(i = 0;i < n; i++){
for(j = 0;j < n; j++)
printf("%d ",a[i][j]);
printf("\n");
}
}
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, m, i, j, k;
scanf("%d%d", &n, &m);
int **a = (int **)malloc(n * sizeof(int *));
int **b = (int **)malloc(n * sizeof(int *));
for(i = 0; i < n ; i++)
{
a[i] = (int *)malloc(n * sizeof(int));
b[i] = (int *)malloc(n * sizeof(int));
}
for(i = 0; i < n ; i++)
{
for(j = 0; j < n ; j++)
{
scanf("%d", &a[i][j]);
}
}
m = m % 4;
for(k = 0; k < m ; k++)
{
for(i = 0; i < n ; i++)
{
for(j = 0; j < n; j++)
{
if(k % 2 == 0)
b[i][j] = a[n - j - 1][i];
else
a[i][j] = b[n - j - 1][i];
}
}
}
printf("\n");
for(i = 0; i < n ; i++)
{
for(j = 0; j < n ; j++)
{
if(m % 2 == 0)
printf("%d ", a[i][j]);
else
printf("%d ", b[i][j]);
}
printf("\n");
}
system("pause");
return 0;
}