蛇形矩阵(三角型)

Input n:

5↙

   1   2   6   7  15

   3   5   8  14  16

   4   9  13  17  22

  10  12  18  21  23

  11  19  20  24  25

#include<stdio.h>
int main()
{
   int i,j,a[100][100],n,k,ret;
   printf("Input n:\n");
   ret=scanf("%d",&n);
   k=1;
    
   if(n<100&&n>0&&ret==1)
   {
	   for(i=0; i<n; i++)
	   {
	      for(j=0; j<=i; j++)
		  {   //输出上三角
             if(i%2==0) a[i-j][j]=k;
             else a[j][i-j]=k;
             k++;
		  }
	   }
              //输出下三角
       for(i=n; i<2*n; i++)
	   {
	      for(j=1; j<2*n-i; j++)
		  {
             if(i%2==0) a[n-j][i-n+j]=k; //n+1在这里是定值了
             else a[i-n+j][n-j]=k;
             k++;
		  }
	   }
       for(i=0; i<n; i++)
	   {
		   if(i!=0)
		   printf("\n");
          for(j=0; j<n; j++)
          {
              printf("%4d",a[i][j]);
		  }
	   }
       printf("\n");
   }
   else
	   printf("Input error!\n");
   return 0;
}

要想输出

1   3   4  10  11
   2   5   9  12  19
   6   8  13  18  20
   7  14  17  21  24
  15  16  22  23  25  类型的只需要把两个a[][]交换即可

猜你喜欢

转载自blog.csdn.net/qq_44075791/article/details/85638280
今日推荐