• 双转向旋转方阵递归设计


    #include <stdio.h>
    int n,a[20][20]={0};
    void main()
    { int h,v,b,p,s,d;
    printf("  请选择方阵阶数n:");
    scanf("%d",&n);
    printf("  请选择转向,顺转1,逆转2:");
    scanf("%d",&p);
    b=1;s=n;d=1;
    void t(int b,int s,int d);  // 递归函数说明  
    t(b,s,d);
    if(p==1)                    // 按要求输出旋转方阵  
       printf("   %d阶顺转方阵: 
    ",n);
    else
       printf("   %d阶逆转方阵: 
    ",n);
    for(h=1;h<=n;h++) 
      { for(v=1;v<=n;v++) 
    	    if(p==1)
    	       printf(" %3d",a[h][v]);
    	    else 
           printf(" %3d",a[v][h]);
        printf("
    ");
       }
    return;
    }
    void t(int b,int s,int d)    // 定义递归函数  
    { int j,h=b,v=b;
    if(s==0) return;             // s=0,1时为递归出口  
    if(s==1) 
    { a[b][b]=d;return;}
    for(j=1;j<s;j++)             // 一圈的上行从左至右递增    
    { a[h][v]=d;v++;d++;}
    for(j=1;j<s;j++)             // 一圈的右列从上至下递增    
    { a[h][v]=d;h++;d++;}
    for(j=1;j<s;j++)             // 一圈的下行从右至左递增    
    { a[h][v]=d;v--;d++;}
    for(j=1;j<s;j++)             // 一圈的左行从下至上递增    
    { a[h][v]=d;h--;d++;}
    t(b+1,s-2,d);                // 调用内圈递归函数  
    }
    

      

  • 相关阅读:
    windows 系列机器查看tcp 配置
    test windows live writer
    win7 mysql 启动 问题
    用enum枚举量做下标初始化数组
    二层VXLAN静态配置
    pip install scrapy报错原文
    python练习2
    pycharm字体大小设置快捷键的方法
    python练习1
    centos 7下修改IP地址为静态
  • 原文地址:https://www.cnblogs.com/lls1350767625/p/7900884.html
Copyright © 2020-2023  润新知