#include <stdio.h>
int main(void)
{
int n,r,d,u;
//定义top为螺旋方阵的牵引数,写入数组的索引,count为数据螺旋的计数
int top = 0,count = 0;
//定义二维数据为10*10的默认方阵
int[][] cercle[10][10];
printf("请选择要打印的螺旋方阵参数n(n小于10)!\n");
scanf("%d",n);
for(int i = 0;i < n/2;i++)
{
count++;
for(int j = count;j < n;j++)
{
//计数
top++;
//给cercle数组第i行j列的位置赋值
cercle[j] = top;
//标记第i行最后一个赋值数的列数为r
r = j;
}
for(int k = count;k < n;k++)
{
//计数
top++;
//给cercle数组第k行r列的位置赋值
cercle[k][r] = top;
//标记第r列最后一个赋值数的行数为d
d = k;
}
for(int l = n;l > count;l--)
{
//计数
top++;
//给cercle数组第d行l列的位置赋值
cercle[d][l] = top;
//标记第l列最后一个赋值数的行数为u
u = l;
}
for(int m = n;m > count;m--)
{
//计数
top++;
//给cercle数组第u行m列的位置赋值
cercle[m] = top;
}
}
//打印二维数组
for(int a = 0;a < 10;a++)
{
for(int b = 0; b < 10;b++)
{
//逐个打印数组数据
printf("%d",cercle[a]);
}
//打印回车符,隔开每一行
printf("\n");
}
}
昨天一大神做的!你看看!不过他用的是c |