急求!C语言的蛇形方阵!1 2 6 7 15 16 3 5 8 14 17 26 4 9 13 18 25 27 10 12 19 24 28 33 11 20 23 29 32 34 21 22 30 31 35 36如上图,输入一个N,输出N行N列的蛇形方阵,求思路,最好附上代码
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/17 01:13:33
![急求!C语言的蛇形方阵!1 2 6 7 15 16 3 5 8 14 17 26 4 9 13 18 25 27 10 12 19 24 28 33 11 20 23 29 32 34 21 22 30 31 35 36如上图,输入一个N,输出N行N列的蛇形方阵,求思路,最好附上代码](/uploads/image/z/13425160-40-0.jpg?t=%E6%80%A5%E6%B1%82%21C%E8%AF%AD%E8%A8%80%E7%9A%84%E8%9B%87%E5%BD%A2%E6%96%B9%E9%98%B5%211+++2+++6++7++15++16+++3+++5++8++14++17++26+++4+++9+13++18++25++27++10++12+19++24++28++33++11++20+23++29++32++34+++21+22+++30++31++35+++36%E5%A6%82%E4%B8%8A%E5%9B%BE%2C%E8%BE%93%E5%85%A5%E4%B8%80%E4%B8%AAN%2C%E8%BE%93%E5%87%BAN%E8%A1%8CN%E5%88%97%E7%9A%84%E8%9B%87%E5%BD%A2%E6%96%B9%E9%98%B5%2C%E6%B1%82%E6%80%9D%E8%B7%AF%2C%E6%9C%80%E5%A5%BD%E9%99%84%E4%B8%8A%E4%BB%A3%E7%A0%81)
急求!C语言的蛇形方阵!1 2 6 7 15 16 3 5 8 14 17 26 4 9 13 18 25 27 10 12 19 24 28 33 11 20 23 29 32 34 21 22 30 31 35 36如上图,输入一个N,输出N行N列的蛇形方阵,求思路,最好附上代码
急求!C语言的蛇形方阵!
1 2 6 7 15 16
3 5 8 14 17 26
4 9 13 18 25 27
10 12 19 24 28 33
11 20 23 29 32 34
21 22 30 31 35 36
如上图,输入一个N,输出N行N列的蛇形方阵,
求思路,最好附上代码(最好有注释)!
多谢了!
急求!C语言的蛇形方阵!1 2 6 7 15 16 3 5 8 14 17 26 4 9 13 18 25 27 10 12 19 24 28 33 11 20 23 29 32 34 21 22 30 31 35 36如上图,输入一个N,输出N行N列的蛇形方阵,求思路,最好附上代码
#include <stdio.h>
#define N 5 /*可改变数组大小*/
#define M 0 /*改变蛇形数组 方向*/
/*
M = 0
1 3 4
2 5 8
6 7 9
M = 1
1 2 6
3 5 7
4 8 9
*/
void main()
{
int x=0,y=0,b,k=1,i,j,w=1;
int s[N][N];
b = N*N;
s[0][0]=1;
for(i=2; i<=b; i++)
{
if((y == 0) && (x != (N-1)) && (x%2 == (0+M)%2))
{
x++;
k = 1;
w = 0;
}
if((x == 0) && (y != (N-1)) && (y%2 == (1+M)%2))
{
y++;
k = 0;
w = 0;
}
if(x == (N-1) && (y%2 == ((N%2+1)%2+M)%2))
{
y++;
k = 1;
w = 0;
}
if(y == (N-1) && (x%2 == (N%2+M)%2) && !( (x == N-1) && (y == N-1) ) )
{
x++;
k = 0;
w = 0;
}
if((w == 1) && (k == 1))
{
x--;
y++;
}
if((w == 1) && (k == 0))
{
x++;
y--;
}
s[x][y] = i;
w = 1;
}
for(i=0; i<N; i++)
{
for(j=0; j<N; j++)
{
printf("%d\t",s[i][j]);
}
printf("\n");
}
}