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

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. //功能选择界面
  5. void menu();
  6.  
  7. //使用声明
  8. void Statement();
  9.  
  10. //打印实心菱形
  11. int Solid_diamond();
  12.  
  13. //打印空心三角形
  14. int Hollow_triangle();
  15.  
  16. //打印十字形
  17. int Cross();
  18.  
  19. //打印空心正方形
  20. int Hollow_square();
  21.  
  22. //打印实心平行四边形
  23. int Solid_parallelogram();
  24.  
  25. //主函数
  26. main(void)
  27. {
  28.   int n;
  29.   printf("\t\t\t欢迎体验1.0版本图形打印机\n\n\n");
  30.   while()
  31.   {
  32.     menu();
  33.     printf("Please select a funcyion:");
  34.     scanf("%d",&n);
  35.     switch(n)
  36.     {
  37.       case :Statement();break;
  38.       case :Solid_diamond();break;
  39.       case :Hollow_triangle();break;
  40.       case :Cross();break;
  41.       case :Hollow_square();break;
  42.       case :Solid_parallelogram();break;
  43.       case :exit();break;
  44.     }
  45.     if(n<||n>)
  46.       printf("\t\t\t---Input Error!---\n\n\n");
  47.   }
  48. }
  49.  
  50. //声明界面
  51. void Statement()
  52. {
  53.   printf("\n\n\n");
  54.   printf("1---Because the interface is too small,so,please enter a number less than 20\n");
  55.   printf(" (因为界面太小,所以请输入小于20的数以便观察)\n");
  56.   printf("2---The current version only supports the English language\n");
  57.   printf(" (因为目前水平有限,所以只支持英文模式)\n");
  58.   printf("3---If you find problem,please contact me in time,tkank you\n");
  59.   printf(" (如果你在使用过程中发现问题,请及时联系我,谢谢)\n\n\n");
  60. }
  61.  
  62. //菜单界面
  63. void menu()
  64. {
  65.   printf("\n\n\n");
  66.   printf("\t\t\t1---Statement(使用声明)\n");
  67.   printf("\t\t\t2---Solid diamond(实心菱形)\n");
  68.   printf("\t\t\t3---Hollow triangle(空心三角形)\n");
  69.   printf("\t\t\t4---Cross(十字形)\n");
  70.   printf("\t\t\t5---Hollow_square(空心正方形)\n");
  71.   printf("\t\t\t6---Solid_parallelogram(实心平行四边形)\n");
  72.   printf("\t\t\t0---Exit the program(退出程序)\n\n\n");
  73.   printf("Important:《Only support English》\n\n\n");
  74. }
  75.  
  76. //实心菱形
  77. int Solid_diamond()
  78. {
  79.   int i,j,n;
  80.   char m;
  81.   printf("Please enter the order number(请输入阶数):");
  82.   scanf("%d",&n);
  83.   fflush(stdin);//清空缓存区
  84.   printf("Please enter the character(请输入字符):");
  85.   scanf("%c",&m);
  86.   if(n<=)
  87.   printf("\t\t\tInput Error!\n");
  88.   for(i=;i<=n;i++)
  89.   {
  90.     for(j=;j<=n-i;j++)
  91.     printf(" ");
  92.     for(j=;j<=*i-;j++)
  93.     printf("%c",m);
  94.     printf("\n");
  95.   }
  96.   /*首先打n-1个空格后面接星号,随后空格逐渐减少,星号以2*1形式增加,
  97.   只打印了左边部分的空格 ,右边空格未打印。
  98.   打印出最大阶数*/
  99.   for(i=;i<=n-;i++)
  100.   {
  101.     for(j=;j<=i;j++)
  102.     printf(" ");
  103.     for(j=;j<*(n-i);j++)
  104.     printf("%c",m);
  105.     printf("\n");
  106.   }
  107.   //仿照上式,逆序打印,只是要注意要比上式少一阶
  108. }
  109.  
  110. //空心三角形
  111. int Hollow_triangle()
  112. {
  113.   int i,j,n;
  114.   char m;
  115.   printf("Please enter the order number(请输入阶数):");
  116.   scanf("%d",&n);
  117.   fflush(stdin);//清空缓存区
  118.   printf("Please enter the character(请输入字符):");
  119.   scanf("%c",&m);
  120.   if(n<=)
  121.   printf("\t\t\tInput Error!\n");
  122.   for(i=;i<n+;i++)
  123.   {
  124.     for(j=;j<*n;j++)
  125.     {
  126.     if(j==n-i+||j==i+n-||i==n&&j%==)
  127.       printf("%c",m);
  128.     //j=n-i+1打印左边符号;j=n+i-1打印右边符号;i=n&&j%2==1打印最后一层星号
  129.     else
  130.       printf(" "); //除星号外其余全为空格
  131.     }
  132.     printf("\n");
  133.   }
  134. }
  135.  
  136. //十字形
  137. int Cross()
  138. {
  139.   int i,j,n;
  140.   char m;
  141.   printf("Please enter the order odd number(请输入奇数阶数):");
  142.   scanf("%d",&n);
  143.   fflush(stdin);//清空缓存区
  144.   printf("Please enter the character(请输入字符):");
  145.   scanf("%c",&m);
  146.   if(n<=)
  147.   printf("\t\t\tInput Error!\n");
  148.   for(i=;i<=n;i++)
  149.   {
  150.     for(j=;j<=n;j++)
  151.     {
  152.       if(j==n||i==(n+)/)
  153.       /*按正常情况这是错的,应该是(j==(n+1)/2||i==(n+1)/2),但是由于界面
  154.       的问题 ,为了美观,我选择扩大横排的间距,把竖排的字符打印得更靠后*/
  155.       printf("%c ",m);
  156.       else
  157.         printf(" ");
  158.     }
  159.     printf("\n");
  160.   }
  161. }
  162.  
  163. //空心正方形
  164. int Hollow_square()
  165. {
  166.   int i,j,n;
  167.   char m;
  168.   printf("Please enter the order number(请输入阶数):");
  169.   scanf("%d",&n);
  170.   fflush(stdin);//清空缓存区
  171.   printf("Please enter the character(请输入字符):");
  172.   scanf("%c",&m);
  173.   if(n<=)
  174.   printf("\t\t\tInput Error!\n");
  175.   for(i=;i<=n;i++)
  176.   {
  177.     for(j=;j<=n-;j++)
  178.     if(i==||j==||i==n)
  179.       printf(" %c",m);
  180.     else
  181.       printf(" ");
  182.     printf(" %c\n",m);
  183.   }
  184. }
  185.  
  186. //实心平行四边形
  187. int Solid_parallelogram()
  188. {
  189.   int i,j,k,n;
  190.   char m;
  191.   printf("Please enter the order number(请输入阶数):");
  192.   scanf("%d",&n);
  193.   fflush(stdin);//清空缓存区
  194.   printf("Please enter the character(请输入字符):");
  195.   scanf("%c",&m);
  196.   if(n<=)
  197.     printf("\t\t\tInput Error!\n");
  198.   for(i=;i<=n;i++)
  199.   {
  200.     for(j=;j<=n-i;j++)
  201.     printf(" ");
  202.     for(k=;k<=n;k++)
  203.       printf("%c",m);
  204.     printf("\n");
  205.   }
  206. }

c++打印实心菱形,空心三角形,十字星,空心正方形,实心平行四边形的更多相关文章

  1. java中打印实心菱形以及空心菱形的方法

    一.打印效果 二.实现代码汇总 为了方便初学者对代码的理解,建议熟练t1到t5为各种三角的打印,然后再进行菱形的打印实现. package circulationDemo; import java.u ...

  2. Java 写三角形 空心三角形 菱形 空心菱形

    闲来无事,练习了一下Java基础中的循环语句.练习循环语句,当然少不了,用*打印出来三角形.空心三角形.菱形等这样的几何图形. 粗心大意,失误两次: 一.三角形 遇到一些小问题: 二.金字塔 由于三角 ...

  3. 纯 CSS 实现实心三角形和空心三角形

    一.实心三角形 1.代码 .div-angles{ width:; height:; border-style: solid; border-width:30px; border-color: tra ...

  4. 纯CSS制作空心三角形和实心三角形及其实现原理

    纯CSS制作空心三角形和实心三角形及其实现原理 在一次项目中需要使用到空心三角形,我瞬间懵逼了.查阅了一些资料加上自己的分析思考,终于是达到了效果,个人感觉制作三角形是使用频率很高的,因此记录下来,供 ...

  5. html5 css写出一个实心三角形和空心三角行

    原理:css中的border属性的特殊性. 实心三角形: html5: <div id="mydiv"></div> css: #mydiv{ height ...

  6. hdu 2091 空心三角形

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2091 空心三角形 Description 把一个字符三角形掏空,就能节省材料成本,减轻重量,但关键是为 ...

  7. hdoj 2091 空心三角形

    空心三角形 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  8. CSS画一个三角形,CSS绘制空心三角形,CSS实现箭头

     壹 ❀ 引 这两天因为项目工作较少,闲下来去看了GitHub上关于面试题日更收录的文章,毕竟明年有新的打算.在CSS收录中有一题是 用css创建一个三角形,并简述原理 .当然对于我来说画一个三角形是 ...

  9. css 三角形空心三角形的简单实现

    <style> #talkbubble { width: 120px; height: 80px; position: relative; -moz-border-radius: 10px ...

随机推荐

  1. ASP.NET----内置对象----Resuest

    Request对象可以获取包含用户的计算机.页面及浏览器的请求等相关信息. Request对象的属性: ①Form----------返回有关表单变量的集合 ②QueryString--------- ...

  2. angular6 监听url查询参数变化刷新页面

    快照snapshot取到的参数是组件第一次渲染时候的参数,当我们在页面中需要根据不同的url查询参数显示不同的内容时,快照就不能满足我们的需要了,这时候就要用ActivatedRoute服务的quer ...

  3. CORE DUMP生成调试

    之前我调试嵌入式linux程序,一般是借助ucontext库,在发生段错误时,直接将错误函数打印出来.有同事建议我使用core dump,于是我今天在嵌入式板卡尝试了core文件的生成,但是也是几经波 ...

  4. 栈 队列 hash表 堆 算法模板和相关题目

    什么是栈(Stack)? 栈(stack)是一种采用后进先出(LIFO,last in first out)策略的抽象数据结构.比如物流装车,后装的货物先卸,先转的货物后卸.栈在数据结构中的地位很重要 ...

  5. NGUI里的sprite和label有白色的边框

    问题描述:NGUI里的sprite和label有白色的边框,而原图一切正常 如图: 解决方案: 给Sprite 边缘左右更增加1,这样拉伸的时候就忽略了左右1的位置,图片就不会显示白色边框了

  6. Scrapy笔记06- Item Pipeline

    Scrapy笔记06- Item Pipeline 当一个item被蜘蛛爬取到之后会被发送给Item Pipeline,然后多个组件按照顺序处理这个item. 每个Item Pipeline组件其实就 ...

  7. docker自定义镜像上传阿里云

    1.alpine制作jdk镜像 2.Alpine制作jre镜像(瘦身) 3.Docker镜像上传至阿里云 alpine制作jdk镜像 alpine Linux简介 1.Alpine Linux是一个轻 ...

  8. ABP 报错1

    报错:.net core 2.2 HTTP Error 502.5 - ANCM Out-Of-Process Startup Failure 解决:安装.net core 2.2就解决了, 本地安装 ...

  9. [RN] React Native 使用 teaset(Drawer)实现侧边菜单

    https://www.cnblogs.com/crazycode2/p/9537518.html

  10. 最短路径 | 1003 dfs 或 dij ,单源最短路径条数与经过的点权最大

    这题很早之前就遇到过,是pat留给我的第一印象,然而昨天却有点写不出来.今天dfs用了10分钟不到写出来了.dij用了大约15分钟,捉虫花了一点时间. dfs: 注意剪枝的时候别剪错就行了. #inc ...