zoukankan      html  css  js  c++  java
  • 打印沙漏

    #include<stdio.h>
    int main()
    {
           int n,i,j,k,sum,a;
           char ch;
           sum=1;
           scanf("%d",&n);
           scanf("%c",&ch);
           for(i=1;sum<=n;i++)
           {
                  sum+=2*(2*(i+1)-1);
            }
            i=i-1;
            for(j=0;j<i;j++)
            {
                   for(k=0;k<j;k++);
                   {
                           printf(" ");
                   }
                   for(a=0;a<=2*(i-j)-1;a++)
                   {
                           printf("%c",ch);
                    }
                   printf(" ");
             }
             for(j=2;j<=i;j++)
             {
                    for(k=0;k<i-j;k++);
                    {
                            printf(" ");
                    }
                    for(a=0;a<=2*j-1;a++)
                    {
                           printf("%c",ch);
                     }
                     printf(" ");
               }
               printf("%d",n-(sum-2*(2*(i+1)-1);
               return 0;
    }
    设计思路

         
    本题调试过程碰到问题及解决办法
         注意1:打印沙漏的上半部分时,无思路。
         解决办法:在百度上参考参考别人的,从中获取灵感,上半部分打印不是特别难。
         注意2:打印沙漏下半部分时,不知道怎么打印空格
         解决办法:请教了那些写完的同学,下半部分打印从符号着手,因为符号可以按等差数列打印,再推出j=2,从而一次往下推。
     
  • 相关阅读:
    说说与线程相关的方法
    sleep()和yield()有什么区别?
    同步和异步有何异同,分别在什么情况下使用?
    如何保证多个线程同时启动?
    volatile关键字能否保证线程安全?
    使用对象的wait()方法需要注意什么?
    乐观锁与悲观锁是什么?
    Condition实现等待、唤醒
    LongAdder与AtomicLong有什么区别?
    介绍一下ForkJoinPool的使用
  • 原文地址:https://www.cnblogs.com/hunan-hengyang/p/10398914.html
Copyright © 2011-2022 走看看