• 寒假作业1编程总结。


    一、题目
    7-1 打印沙漏 (20 分)

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

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

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

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

    输入格式:

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

    输出格式:

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

    输入样例:

    19 *

    二、实验代码

    #include<stdio.h>

    int main()

    {

        int i,N,sum,h,r,d,k;

        char c;

        scanf("%d %c",&N,&c);

        sum=0;

        for(i=1;sum<=N;i++)

      {

        sum=2*i*i-1;

      }

            h=i-2;

            sum=2*h*h-1;

            printf("%d %d ",sum,h);

            r=N-sum;

            for(d=h;d>0;d--)
    {
            if(d<h)
    {
            for(k=h-d;k>0;k--)
    {
            printf(" ");}
    }
            for(i=2*d-1;i>0;i--)
    {       

           printf("%c",c);
    }
           printf(" ");

    }
           for(d=2;d<=h;d++)
    {
           if(d<h)
    {
           for(k=h-d;k>0;k--)
    {
           printf(" ");}
    }
           for(i=2*d-1;i>0;i--)
    {
            printf("%c",c);
    }
            printf(" ");
    }
            printf("%d ",r);

    }

    三、设计思路

    本题需要我们用程序编写出用*的沙漏形状,首先想到的是用整数慢慢一行一行的输出,之后就能形成一个沙漏的形状,但开始编译后发现多输出了其余的变量,之后试着自己调试,找到了是自己变量设置错误,重新修改在编译成功了。

  • 相关阅读:
    【leetcode刷题笔记】Best Time to Buy and Sell Stock II
    【leetcode刷题笔记】Reverse Integer
    JAVA中的NIO(二)
    标准I/O
    margin的理解
    JAVA中的NIO(一)
    IO模型
    linux网络命令
    linux用户管理命令
    linux中的帮助命令
  • 原文地址:https://www.cnblogs.com/xzy999123/p/10455667.html
Copyright © 2020-2023  润新知