zoukankan      html  css  js  c++  java
  • c++打印实心菱形,空心三角形,十字星,空心正方形,实心平行四边形

    今天翻资料的时候,无意间发现了一个文件,是刚接触编程的时候用c++写的一段程序,我称之为"图形打印机",想着把所有图形都打印出来,后来发现其实每种图形的代码都是一个思路,就不想做重复劳动了。今天翻到了就把它记下来做个纪念吧。

    #include<stdio.h>
    #include<stdlib.h>
    
    //功能选择界面
    void menu();
    
    //使用声明
    void Statement();
    
    //打印实心菱形
    int Solid_diamond();
    
    //打印空心三角形
    int Hollow_triangle();
    
    //打印十字形 
    int Cross();
    
    //打印空心正方形 
    int Hollow_square();
    
    //打印实心平行四边形
    int Solid_parallelogram();
    
    //主函数 
    main(void)
    {
      int n;
      printf("			欢迎体验1.0版本图形打印机
    
    
    ");
      while(1)
      {
        menu();
        printf("Please select a funcyion:");
        scanf("%d",&n);
        switch(n)
        {
          case 1:Statement();break;
          case 2:Solid_diamond();break;
          case 3:Hollow_triangle();break;
          case 4:Cross();break;
          case 5:Hollow_square();break;
          case 6:Solid_parallelogram();break;
          case 0:exit(0);break;
        }
        if(n<0||n>6)
          printf("			---Input Error!---
    
    
    ");
      }
    }
    
    
    //声明界面
    void Statement()
    {
      printf("
    
    
    ");
      printf("1---Because the interface is too small,so,please enter a number less than 20
    ");
      printf(" (因为界面太小,所以请输入小于20的数以便观察)
    ");
      printf("2---The current version only supports the English language
    ");
      printf(" (因为目前水平有限,所以只支持英文模式)
    ");
      printf("3---If you find problem,please contact me in time,tkank you
    ");
      printf(" (如果你在使用过程中发现问题,请及时联系我,谢谢)
    
    
    ");
    }
    
     
    
    //菜单界面 
    void menu()
    {
      printf("
    
    
    ");
      printf("			1---Statement(使用声明)
    ");
      printf("			2---Solid diamond(实心菱形)
    ");
      printf("			3---Hollow triangle(空心三角形)
    ");
      printf("			4---Cross(十字形)
    ");
      printf("			5---Hollow_square(空心正方形)
    ");
      printf("			6---Solid_parallelogram(实心平行四边形)
    ");
      printf("			0---Exit the program(退出程序)
    
    
    ");
      printf("Important:《Only support English》
    
    
    ");
    }
    
     
    
     
    
    //实心菱形 
    int Solid_diamond()
    {
      int i,j,n;
      char m;
      printf("Please enter the order number(请输入阶数):");
      scanf("%d",&n);
      fflush(stdin);//清空缓存区 
      printf("Please enter the character(请输入字符):");
      scanf("%c",&m);
      if(n<=0)
      printf("			Input Error!
    ");
      for(i=1;i<=n;i++)
      {
        for(j=1;j<=n-i;j++)
        printf(" ");
        for(j=1;j<=2*i-1;j++)
        printf("%c",m);
        printf("
    ");
      }
      /*首先打n-1个空格后面接星号,随后空格逐渐减少,星号以2*1形式增加,
      只打印了左边部分的空格 ,右边空格未打印。
      打印出最大阶数*/
      for(i=1;i<=n-1;i++)
      {
        for(j=1;j<=i;j++)
        printf(" ");
        for(j=1;j<2*(n-i);j++)
        printf("%c",m);
        printf("
    ");
      }
      //仿照上式,逆序打印,只是要注意要比上式少一阶
    }
    
     
    
    //空心三角形 
    int Hollow_triangle()
    {
      int i,j,n; 
      char m;
      printf("Please enter the order number(请输入阶数):"); 
      scanf("%d",&n); 
      fflush(stdin);//清空缓存区 
      printf("Please enter the character(请输入字符):");
      scanf("%c",&m);
      if(n<=0)
      printf("			Input Error!
    ");
      for(i=1;i<n+1;i++) 
      { 
        for(j=1;j<2*n;j++) 
        { 
        if(j==n-i+1||j==i+n-1||i==n&&j%2==1) 
          printf("%c",m);
        //j=n-i+1打印左边符号;j=n+i-1打印右边符号;i=n&&j%2==1打印最后一层星号 
        else 
          printf(" "); //除星号外其余全为空格 
        } 
        printf("
    "); 
      } 
    }
    
     
    
    //十字形 
    int Cross()
    {
      int i,j,n;
      char m;
      printf("Please enter the order odd number(请输入奇数阶数):"); 
      scanf("%d",&n); 
      fflush(stdin);//清空缓存区 
      printf("Please enter the character(请输入字符):");
      scanf("%c",&m);
      if(n<=0)
      printf("			Input Error!
    ");
      for(i=1;i<=n;i++)
      {
        for(j=1;j<=n;j++)
        {
          if(j==n||i==(n+1)/2)
          /*按正常情况这是错的,应该是(j==(n+1)/2||i==(n+1)/2),但是由于界面
          的问题 ,为了美观,我选择扩大横排的间距,把竖排的字符打印得更靠后*/ 
          printf("%c ",m);
          else
            printf(" ");
        }
        printf("
    ");
      }
    }
    
      
    
    //空心正方形 
    int Hollow_square()
    {
      int i,j,n;
      char m;
      printf("Please enter the order number(请输入阶数):"); 
      scanf("%d",&n); 
      fflush(stdin);//清空缓存区 
      printf("Please enter the character(请输入字符):");
      scanf("%c",&m);
      if(n<=0)
      printf("			Input Error!
    ");
      for(i=1;i<=n;i++)
      {
        for(j=1;j<=n-1;j++)
        if(i==1||j==1||i==n)
          printf(" %c",m);    
        else
          printf(" ");
        printf(" %c
    ",m);
      }
    }
    
     
    
    //实心平行四边形 
    int Solid_parallelogram()
    {
      int i,j,k,n;
      char m;
      printf("Please enter the order number(请输入阶数):"); 
      scanf("%d",&n); 
      fflush(stdin);//清空缓存区 
      printf("Please enter the character(请输入字符):");
      scanf("%c",&m);
      if(n<=0)
        printf("			Input Error!
    ");
      for(i=1;i<=n;i++)
      {
        for(j=1;j<=n-i;j++)
        printf(" ");
        for(k=1;k<=n;k++)
          printf("%c",m);
        printf("
    ");
      }
    }
  • 相关阅读:
    Balance的数学思想构造辅助函数
    1663. Smallest String With A Given Numeric Value (M)
    1680. Concatenation of Consecutive Binary Numbers (M)
    1631. Path With Minimum Effort (M)
    1437. Check If All 1's Are at Least Length K Places Away (E)
    1329. Sort the Matrix Diagonally (M)
    1657. Determine if Two Strings Are Close (M)
    1673. Find the Most Competitive Subsequence (M)
    1641. Count Sorted Vowel Strings (M)
    1679. Max Number of K-Sum Pairs (M)
  • 原文地址:https://www.cnblogs.com/tenfly/p/11455687.html
Copyright © 2011-2022 走看看