1个回答
2018-10-18 · 知道合伙人互联网行家
关注
展开全部
int n为阶数,具体打印格式你可以按需要改 void op(int n) { int i=0,j=0; int*(*p); int temp = 1; int t; p = (int**)malloc(sizeof(int*)*n); for (t=0;t<n;t++) { p[t]=(int*)malloc(sizeof(int)*n); } for (t=0;t<((float)n/2);t++) { for (;j<n-t;j++) p[i][j] = temp++; j--; i++; for(;i<n-t;i++) p[i][j] = temp++; i--; j--; for(;j>=t;j--) p[i][j] = temp++; j++; i--; for(;i>t;i--) p[i][j] = temp++; j++; i++; } for (i=0;i<n;i++) { for (j=0;j<n;j++) { printf(\"%3d \",p[i][j]); } printf(\"\\n\"); } }
追问
可以简单说说思路么?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询