当前位置: 代码迷 >> C语言 >> 冰天雪地跪求,蛇行数组
  详细解决方案

冰天雪地跪求,蛇行数组

热度:363   发布时间:2008-06-16 08:49:11.0
冰天雪地跪求,蛇行数组
使一个N*N的二维数组按如下方式排列.
例如,4*4的二维数组采用如下排列:
1    2    6    7
3    5    8    13
4    9    12   14
10   11   15   16
如下代码中红色的部分有5个错误,导致结果显示有误.
#include<stdio.h>
void main()
{
int a[100][100]={0},n,i,j,k,l,s,sign;
s=1;sign=1;
scanf("%d",&n);
i=j=0;
for(k=0;k<n;k++)
  {
  if(sign==1)
    {
    i=k;j=0;
    while(i>=0)
      {
      a[i][j]=s;
      s++;i--;j++;
      }
    sign=-sign;
    }
  else
    {
    j=k;i=0;
    while(j>=0)
      {
      a[i][j]=s;
      s++;i++;j--;
      }
    sign=-sign;
    }
  }
s=n*n;
sign=-sign;
for(l=n-1;l>0;l--)
  {
  if(sign==-1)
    {
    i=l;j=n-1;
    while(i>=n-1)
    {a[i][j]=s;s--;i++;j--;}
    sign=-sign;
    }
  else
    {
    i=l;j=n-1;
    while(i<=n-1)
    { a[j][i]=s;
    s--;i++;j--;}
    sign=-sign;
    }
  }
for(i=0;i<n;i++)
   {
   for(j=0;j<n;j++)
   printf("%4d",a[i][j]);
   printf("\n");
}
}

哪儿大虾行行好.帮帮小弟偶啊~

[[it] 本帖最后由 十三月的花 于 2008-6-16 08:54 编辑 [/it]]
搜索更多相关的解决方案: 蛇行  sign  int  main  includevoid  

----------------解决方案--------------------------------------------------------