以下是引用世界模型在2012-2-10 21:49:03的发言:
看错了 我以为是旋转矩阵
没错,就是旋转矩阵。
看错了 我以为是旋转矩阵
梅尚程荀
马谭杨奚
#include<stdio.h> void rotate(int * a, int n) { int i, j, m, t, dd, d0, d1, d2, d3; for(i = 0, m = n - 1; i < m; i++, m--) for(j = i; j < m; j++) { dd = j - i; d0 = i * n + j; d1 = (m - dd) * n + i; d2 = m * n + m - dd; d3 = (i + dd) * n + m; t = a[d0]; a[d0] = a[d1]; a[d1] = a[d2]; a[d2] = a[d3]; a[d3] = t; } } void show(int * a, int n) { int i, j; for(i = 0; i < n; i++, putchar('\n')) for(j = 0; j < n; printf("%4d", a[i * n + j++])); } int main() { int a[100], i, j, n; printf("Input Dimension length <= 100 : "); scanf("%d", &n); for(i = 0; i < n; i++) for(j = 0; j < n; j++) { printf("Input data in postion(%d, %d) : ", i, j); scanf("%d", &a[i * n + j]); } printf("The original array is:\n"); show(a, n); printf("\nThe rotated array is:\n"); rotate(a, n); show(a, n); return 0; }