zoukankan      html  css  js  c++  java
  • 方阵之上三角

    方阵的主对角线之上称为“上三角”。

    请你设计一个用于填充n阶方阵的上三角区域的程序。填充的规则是:使用123….的自然数列,从左上角开始,按照顺时针方向螺旋填充。

    例如:当n=3时,输出:

    1 2 3

    6 4

    5

    n=4时,输出:

    1  2 3 4

    9 10 5

    8  6

    7

    n=5时,输出:

      1  2  3  4  5

     12 13 14  6 

     11 15  7

     10  8

      9

    程序运行时,要求用户输入整数n3~20

    程序输出:方阵的上三角部分。

    要求格式:每个数据宽度为4,右对齐。

     

    分析:主要是根据当前数是在第几圈中,其中nTurn是记录当前在第几圈里面。

    源代码:

     

     1 #include <stdio.h>
     2 #include <string.h>
     3 
     4 int main()
     5 {
     6     const int M = 22;
     7     int martix[M][M] = {0};
     8 
     9     int N;
    10     scanf("%d", &N);
    11 
    12     int front = 1;              //当前要填充的数
    13     int last = N * (N + 1) / 2; //输入N时,最后一个数的值
    14 
    15     int i, j, nTurn = 0;        //nTurn记录当前是在第几圈里面
    16     
    17     while(front <= last)
    18     {
    19         nTurn++;                //每次循环,圈数加1
    20 
    21         i = nTurn;
    22         j = nTurn;
    23         for(; j <= N - (nTurn - 1) * 2; j++) //填充每一圈的横排
    24         {
    25             martix[i][j] = front++;
    26         }
    27 
    28         i = nTurn + 1; 
    29         j = N - (nTurn - 1) * 2 - 1;
    30         for(; i <= N - (nTurn - 1) * 2 && j>= nTurn; i++, j--)//填充每一圈斜对角线
    31         {
    32             martix[i][j] = front++;
    33         }
    34 
    35         i = N - (nTurn - 1) * 2 - 1; 
    36         j = nTurn;
    37         for(; i >= nTurn + 1; i--)          //填充每一圈竖排
    38         {
    39             martix[i][j] = front++;
    40         }
    41     }
    42 
    43     for(i = 1; i <= N; i++)
    44     {
    45         for(j = 1; j <= N - i + 1; j++)
    46         {
    47             printf("%4d", martix[i][j]);
    48         }
    49         printf("\n");
    50     }
    51 
    52     return 0;
    53 }

     

     

  • 相关阅读:
    Mac下tomcat的安装与配置
    jquery中的属性和css
    jquery中的选择器
    数组对象元素的添加,String对象,BOM对象以及文档对象的获取
    js中的函数,Date对象,Math对象和数组对象
    js中的循环语句
    js中的运算符和条件语句
    js中的数据类型及其转换
    js的意义,引用方法及变量
    移动端网页项目总结
  • 原文地址:https://www.cnblogs.com/Dreamcaihao/p/3055510.html
Copyright © 2011-2022 走看看