c++程序:蛇形矩阵:生成一个按蛇形方式排列自然数1,2,3,4,5,……,N^2的 N(1 < N <= 15)阶方阵.

c++程序:蛇形矩阵:生成一个按蛇形方式排列自然数1,2,3,4,5,……,N^2的 N(1 < N <= 15)阶方阵.,第1张

#include<stdioh>
void main()
{
 int i,j,a[15][15],n,k;
 printf("Input\nn= ");
 scanf("%d",&n);
 k=1;
 
 //输出上三角
 for(i=1;i<=n;i++)
  for(j=1;j<=i;j++)
  {
   if(i%2==0)
    a[i+1-j][j]=k;
   else
    a[j][i+1-j]=k;k++;
  }
  //输出下三角
  for(i=n+1;i<2n;i++)
   for(j=1;j<=2n-i;j++)
   {
    if(i%2==0)
     a[n+1-j][i-n+j]=k;
    //n+1在这里是定值了
    
    else
     a[i-n+j][n+1-j]=k;
    k++;
   }
   printf("Output\n");
   for(i=1;i<=n;i++)
   {
    printf("\n");
    for(j=1;j<=n;j++)
     printf("%3d",a[i][j]);
   }
   printf("\n");
}

#include<stdioh>
void main()
{
int data[15][15]={0};
int n,m,i,j,num,flag=1;
scanf("%d",&n);
m=nn+1;
i=0;j=0;
for(num=1;num<=m/2;num++)   //生成矩阵
{
data[i][j]=num;
data[n-i-1][n-j-1]=m-num;
i=i-flag;j=j+flag;
if(i<0){i=0;flag=-flag;}
if(j<0){j=0;flag=-flag;}
}
for(i=0;i<n;i++)           //打印矩阵
{
for(j=0;j<n;j++)printf("%3d ",data[i][j]);
printf("\n");
}
}

for(k=0;k<10/2;k++)
 {
  for(i=0;i<10-k;i++) //这里应该是10-k
   a[i][k]= ++count;

完整程序:

#include<stdioh>
main()
{
 int i,j,k,count=0,a[10][20];
 
 for(k=0;k<10/2;k++)
 {
  for(i=0;i<10-k;i++)
   a[i][k]= ++count;
  
  for(j=k+1;j<20-k;j++)
   a[10-k-1][j] = ++count;
  
  for(i=10-k-2;i > k;i--)
   a[i][20-k-1] = ++count;
  
  for(i=20-k-1;i > k;i--)
   a[k][i] = ++count; 
 }
 for(j=0;j<10;j++)
 {
  for(i=0;i<20;i++)
   printf("%d ",a[j][i]);
  printf("\n");
  
 }
}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13378384.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-24
下一篇 2023-07-24

发表评论

登录后才能评论

评论列表(0条)

保存