我错了...呵呵..第一题目 思路 主要是控制 输出,输入N 定义 数组为a(i,j) 先定义 a(1,1)和a(1,2) 后面 就是.当i=1 或j=1 i=N j=N 的时候 改变输出的方向.
1 12 11 10
2 13 16 9
3 14 15 8
4 5 6 7 有这个题目的解 题目 思路就简单 多了.
![](/skin/img/sigline.gif)
斑竹 哪个 程序有没运行过啊....
当然运行过,我用的是GCC,难道你运行有问题?
我错了...呵呵..第一题目 思路 主要是控制 输出,输入N 定义 数组为a(i,j) 先定义 a(1,1)和a(1,2) 后面 就是.当i=1 或j=1 i=N j=N 的时候 改变输出的方向.
1 12 11 10
2 13 16 9
3 14 15 8
4 5 6 7 有这个题目的解 题目 思路就简单 多了.
晕,你这个题和顶楼的题目不一样.不过这个更容易.
楼主改的第一题是不是和这个帖子差不多啊?
http://bbs.bc-cn.net/viewthread.php?tid=142707&star=at#
/*
42 21 22 23 24 25 26
41 20 7 8 9 10 27
40 19 6 1 2 11 28
39 18 5 4 3 12 29
38 17 16 15 14 13 30
37 36 35 34 33 32 31
*/
/*TC2.0下面测试的*/
#include <stdio.h>
void main()
{
int num[6][7];
int i=0,j=0,k=42;
int fx=0; /* 0向下, 1向右, 2向上, 3向左 */
while(k>0)
{
num[i][j]=k;
k--;
switch(fx)
{
case 0: i++; if(i==5-j) fx=1; break;
case 1: j++; if(j==6-(5-i)) fx=2; break;
case 2: i--; if(i==5-(j-1)) fx=3; break;
case 3: j--; if(j==1+i) fx=0; break;
}
}
for(i=0;i<6;i++)
{
for(j=0;j<7;j++)
printf("%4d",num[i][j]);
printf("\n");
}
}