经历了栈溢出,各种数组越界,算作用不小了吧,这是最平常的想法(自己思考的),继续看看大佬的做法来充实一下,比如先输出上三角,再输出下三角,笨比没想到只好用昨天摸索的flag转向来做了
#define _CRT_SECURE_NO_WARNINGS #include <malloc.h> #include<stdio.h>
int main()
{
int flag = 1; //方向
int n; //输入
int count = 2; //计数器
int sup = 1;
scanf("%d", &n);
int arr[1001][1001] = { 0 };
arr[1][1] = 1;
int i = 1, j = 2;
int p, q;
while (count <= n * n)
{
if (count <= n * n /2)
{
if (flag == 1)
{
while (j >= 1)
arr[i++][j--] = count++;
j++;
flag = 2;
}
else
{
while (i >= 1)
arr[i--][j++] = count++;
i++;
flag = 1;
}
}
if(count > n * n / 2)
{
if (flag == 1)
{
if (j!= n)
{
j = n;
i = sup+1;
}
while (j > sup)
arr[i++][j--] = count++;
j++;
i--;
j++;
flag = 2;
}
else
{
if (i != n)
{
i = n;
j = sup+1;
}
while (i > sup)
arr[i--][j++] = count++;
i++;
i++;
j--;
flag = 1;
}
sup++;
}
}
for (p = 1; p <= n;p++)
{
for (q = 1; q <= n; q++)
{
printf("%d ", arr[p][q]);
}
printf("\n");
}
return 0;
}