源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

方阵顺时针旋转的实现代码

  • 时间:2021-11-08 14:03 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:方阵顺时针旋转的实现代码
[b]例如,如下的方阵:[/b]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 [b]顺时针旋转,却是如下结果:[/b] 13  9  5  1 14 10  6  2 15 11  7  3 16 12  8  4
[u]复制代码[/u] 代码如下:
#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; }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部