51Testing软件测试论坛

标题: 怎样求这样一个矩阵?(解答) [打印本页]

作者: keenling    时间: 2007-7-16 23:23
标题: 怎样求这样一个矩阵?(解答)
某同学提问:
怎样求这样一个矩阵?

假如有一个nxm 的矩阵,其值分布如下, 哪位能用C or C++ 求出呀, 谢谢帮忙啦.
1           2          3         4        5
16         17        18       19       6
15         24        25       20       7
14         23        22       21       8
13         12        11       10       9

      不好意思,我回帖的两个程序都有点错,而且论坛复制文本有点bug,不能正常显示,所以在这里从新发一下附件,C++的源代码。没想到这样一个简单的程序居然花了很长时间,算法比想象的复杂多,有很多意想不到的情况。
      程序扩展一点功能,能打印任何m*n矩阵。但由于算法复杂,可能还有bug,如果你再碰到异常情况,请告诉我一下,谢谢!
作者: lhjtc8257    时间: 2007-7-17 23:28
#include <stdio.h>
main()
{
int array[5][5],t=0,m=0,r=0,c=0,s1=1,s2=4,s3=0,s4=4,i=1;
  while(s1!=4)
      {
        while(m<=s4)
        {
          array[t][m]=i;
          m++;
          i++;
        }
        s4--;
        m--;
        i--;
        while(t<=s2)
        {
           array[t][m]=i;
           t++;
           i++;
        }
        s2--;
        t--;
        i--;
        while(m>=s3)
        {
           array[t][m]=i;
           m--;
           i++;
        }
        s3++;
        m++;
        while(t>s1)
        {
           t--;
           array[t][m]=i;
           i++;
        }
        t=s1;
        m=s1;
        s1++;
      }
        for(r=0;r<5;r++)
        {

           for(c=0;c<5;c++)
           printf("%3d",array[r][c]);
           printf("\n");
        }
}


但不知道,符合不符合
作者: Susan1202    时间: 2007-7-19 22:40
看啦, 可以实现, 不过好难哟. 谢谢.




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2