WEB开发网
开发学院软件开发C++ 用一维数组存储上三角螺旋矩阵 阅读

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

 2008-03-08 12:50:04 来源:WEB开发网   
核心提示:初学编程,程序中很多地方都不够完备,用一维数组存储上三角螺旋矩阵,望大家见谅, #include <iostream.h>#include <iomanip.h>#include <stdio.h>#define m 20#define h(i,j) ((2*c+2-i)*(i-1
  初学编程,程序中很多地方都不够完备,望大家见谅。    #include <iostream.h>
#include <iomanip.h>
#include <stdio.h>
#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\n");
  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<<setw(4)<<"0";
 else
 if(j==c){k++; cout<<setw(4)<<a[k]<<endl; } else {k++;cout<<setw(4)<<a[k];}
 }
}

Tags:一维 数组 存储

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接