时间紧张,先记一笔,后续优化与完善。
例如,如下的方阵:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
顺时针旋转,是却如下结果:
13 9 5 1
14 10 6 2
15 11 7 3
16 12 8 4
每日一道理
书籍好比一架梯子,它能引领人们登上文化的殿堂;书籍如一同把钥匙,它将帮助我们开启心灵的智慧之窗;书籍犹如一条小船,它会载着我们驶向知识的海洋。
书籍好比一架梯子,它能引领人们登上文化的殿堂;书籍如一同把钥匙,它将帮助我们开启心灵的智慧之窗;书籍犹如一条小船,它会载着我们驶向知识的海洋。
#include <stdio.h>
void rotate(int* x, int rank)
{
int* y = (int*)malloc(sizeof(int) * rank * rank);
for(int i=0; i<rank * rank; i++)
{
// 以原第一行停止分析 一行数变成一同列 以原第一列为例,变成一同行。 (i%rank)*rank使列变成行 rank-(i/rank)-1) 使行变成列
y[(i%rank)*rank+(rank-(i/rank)-1) ] = x[i];
}
for(i=0; i<rank*rank; i++)
{
x[i] = y[i];
}
free(y);
}
int main(int argc, char* argv[])
{
int x[4][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};
int rank = 4;
rotate(&x[0][0], rank);
for(int i=0; i<rank; i++)
{
for(int j=0; j<rank; j++)
{
printf("%4d", x[i][j]);
}
printf("\n");
}
return 0;
}
文章结束给大家分享下程序员的一些笑话语录: 一个合格的程序员是不会写出 诸如 “摧毁地球” 这样的程序的,他们会写一个函数叫 “摧毁行星”而把地球当一个参数传进去。