龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

用一维数组存储上三角螺旋矩阵

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:

初学编程,程序中很多地方都不够完备,望大家见谅。

#include

  #include

  #include

  #define m 20

  #define h(i,j) ((2*c+2-i)*(i-1)/2+j-i+1) //二维数组中元素在一维数组中的位置

  main()

  { int i=1,j=0,s=0,k,n,c;

   int a[m*(m+1)/2+1];

   a[1]=1;

   printf("please input the number

");

   scanf("%d",&n);

   c=n;

   while(n>0)

   {

   for(k=1;k<=n;k++){j++;a[h(i,j)]=++s;}n--;//横向赋值

   for(k=1;k<=n;k++){i++;a[h(i,j)]=++s;}n--;//纵向赋值

   for(k=1;k<=n;k++){j--;i--;a[h(i,j)]=++s;}n--;//斜向赋值

   }

  k=0;

  for(i=1;i<=c;i++)

  for(j=1;j<=c;j++)

  {

   if(i>j)

   cout<

   else

   if(j==c){k++; cout<

   }

  }

  

  

精彩图集

赞助商链接