秋风——落叶 2022-06-06 19:16 采纳率: 66.7%
浏览 28

输出n*n阶螺旋方阵,可是输入没显示方阵

#include<stdio.h>
int main()
{
  int a[10][10];
  int n=0,i=0,j=0;
  int num=1,flag=1;
  scanf("%d",&n);
  for(i=0;i<n;i++)
  {
    for(j=0;j<n;j++)
    {
      a[i][j]=-1;
    }
  }
  while(num<n*n)
  {
    if(a[i][j]==-1)
    {
      a[i][j]=num;
      num++;
    }
    if(flag==1)
    {
      j++;
      if(j==n||a[i][j]!=-1)
      {
        j--;
        flag=2;
      }
    }
    else if(flag==2)
    {
      i++;
      if(i==n||a[i][j]!=-1)
      {
        i--;
        flag=3;
      }
    }
    else if(flag==3)
    {
      j--;
      if(j==-1||a[i][j]!=-1)
      {
        j++;
        flag=4;
      }
    }
    else if(flag==4)
    {
      i--;
      if(i==-1||a[i][j]!=-1)
      {
        i++;
        flag=1;
      }
    }
  }
  for(i=0;i<n;i++)
  {
    for(j=0;j<n;j++)
    {
      printf("%2d",a[i][j]);
    }
    printf("\n");
  }
  return 0;
}

  • 写回答

2条回答 默认 最新

  • WaitIKnowYou 2022-06-06 19:24
    关注
    
    #include<stdio.h>
    int main()
    {
          int i,j,t=1;
          int a[7][7];
           int n=7;
            for (i = 0; i < n/2; i++) 
            {//最外层控制圈数
                for (j = i; j < n-1-i; j++) 
                {//上方       
                    a[i][j]=t++;
                }
                for (j = i; j < n-1-i; j++) 
                {//右侧
                    a[j][n-1-i]=t++;
                }
                for (j = n-1-i; j>i; j--) 
                {//下方
                    a[n-1-i][j]=t++;
                }   
                for (j = n-1-i; j>i; j--) 
                {//左侧
                    a[j][i]=t++;
                }
            }
            if(n%2==1) 
            {//n是奇数时,解决最中心数字未赋值问题
                a[n/2][n/2]=n*n;
            }
            for(i=0;i<n;i++)
            {
                
                for(j=0;j<n;j++)
                {
                    printf("%3d",a[i][j]);
                }
                putchar('\n');
            }
            
            return 0; 
    }
    
    评论

报告相同问题?

问题事件

  • 创建了问题 6月6日