zoukankan      html  css  js  c++  java
  • PAT乙级 1027. 打印沙漏(20)

    1027. 打印沙漏(20)

    时间限制
    200 ms
    内存限制
    65536 kB
    代码长度限制
    8000 B
    判题程序
    Standard
    作者
    CHEN, Yue

    本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印

    *****
     ***
      *
     ***
    *****
    

    所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。

    给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。

    输入格式:

    输入在一行给出1个正整数N(<=1000)和一个符号,中间以空格分隔。

    输出格式:

    首先打印出由给定符号组成的最大的沙漏形状,最后在一行中输出剩下没用掉的符号数。

    输入样例:
    19 *
    
    输出样例:
    *****
     ***
      *
     ***
    *****
    2


     1 #include<stdio.h>
     2 int main()
     3 {
     4     int N=17,n,sum=0,count=0,top=0,i,j,s,top_first;
     5     char star='*';
     6     char space=' ';
     7     scanf("%d %c",&n,&star);
     8     if(n<=6)  
     9         printf("%c
    %d",star,n-1);
    10     else {
    11         if(n%2) N=n/2+1;
    12         else      N=n/2;
    13         while(sum<=N)//sum of top half
    14         {
    15             sum=sum+(2*count+1);
    16             count++;
    17         } count--;
    18         sum=sum-(2*count+1);
    19 
    20         
    21         top_first=2*count-1;
    22         top=top_first;
    23         for(i=0;i<count;i++)
    24         {
    25             for(s=0;s<(top_first-top)/2;s++)
    26                 printf("%c",space);
    27             for(j=0;j<top;j++)    
    28                 printf("%c",star);
    29             printf("
    ");
    30             top-=2;
    31         }
    32         top=3;
    33         for(i=0;i<count-1;i++)
    34         {
    35             for(s=0;s<(top_first-top)/2;s++)
    36                 printf("%c",space);
    37             for(j=0;j<top;j++)
    38                 printf("%c",star);
    39             printf("
    ");
    40             top+=2;
    41         }
    42         printf("%d
    ",n-(sum*2-1) );
    43     }
    44     return 0;
    45 }

    1.以后声明变量一定要注意阿,这次就算变量声明的有点乱

    2. 17行的代码写到19行去了,也是崩溃。。小错误

  • 相关阅读:
    html标签笔记
    C语言中的函数基础
    数组
    循环控制结构程序(goto、while、dowhile、 for)
    if语句+switch
    分支程序设计
    字符数据的输入与输出
    各类数值型数据之间的混合运算
    c语言概述及如何上机运行c程序
    [记录] Ubuntu 配置Apache虚拟站点
  • 原文地址:https://www.cnblogs.com/zle1992/p/5944743.html
Copyright © 2011-2022 走看看