先不说别的,看图。
最近的学校有一个C语言比赛,俺没去,老师还怪我,没法体现出来水平,囧。
一共四个题,三个比较简单,就不说了,上代码。
#include <stdio.h>
#define N 12
struct MyNode
{
bool bUsed;
int nValue;
};
int main(int argc, char* argv[])
{
MyNode Node[N][N] = {{false, 0}};
int x = 0, y = 0, Value = 1;
while (y + 1 < N && x + 1 < N)
{
if (Node[x][y].bUsed) break;
while (y + 1 <= N)
{
if (Node[x][y].bUsed) break;
Node[x][y].bUsed = true;
Node[x][y++].nValue = Value++;
}
y--;
x++;
while (x + 1 <= N)
{
if (Node[x][y].bUsed) break;
Node[x][y].bUsed = true;
Node[x++][y].nValue = Value++;
}
x--;
while (true)
{
if (Node[x - 1][y - 1].bUsed) break;
Node[--x][--y].bUsed = true;
Node[x][y].nValue = Value++;
}
y++;
}
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
if (Node[i][j].bUsed) printf("%2d ", Node[i][j].nValue);
else printf(" ");
}
printf("\n\n");
}
getchar();
return 0;
}
拐来拐去的真烦人,想不到在实际应用当中有什么作用。。。。。。