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("\t\t\t欢迎体验1.0版本图形打印机\n\n\n");
while()
{
menu();
printf("Please select a funcyion:");
scanf("%d",&n);
switch(n)
{
case :Statement();break;
case :Solid_diamond();break;
case :Hollow_triangle();break;
case :Cross();break;
case :Hollow_square();break;
case :Solid_parallelogram();break;
case :exit();break;
}
if(n<||n>)
printf("\t\t\t---Input Error!---\n\n\n");
}
} //声明界面
void Statement()
{
printf("\n\n\n");
printf("1---Because the interface is too small,so,please enter a number less than 20\n");
printf(" (因为界面太小,所以请输入小于20的数以便观察)\n");
printf("2---The current version only supports the English language\n");
printf(" (因为目前水平有限,所以只支持英文模式)\n");
printf("3---If you find problem,please contact me in time,tkank you\n");
printf(" (如果你在使用过程中发现问题,请及时联系我,谢谢)\n\n\n");
} //菜单界面
void menu()
{
printf("\n\n\n");
printf("\t\t\t1---Statement(使用声明)\n");
printf("\t\t\t2---Solid diamond(实心菱形)\n");
printf("\t\t\t3---Hollow triangle(空心三角形)\n");
printf("\t\t\t4---Cross(十字形)\n");
printf("\t\t\t5---Hollow_square(空心正方形)\n");
printf("\t\t\t6---Solid_parallelogram(实心平行四边形)\n");
printf("\t\t\t0---Exit the program(退出程序)\n\n\n");
printf("Important:《Only support English》\n\n\n");
} //实心菱形
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<=)
printf("\t\t\tInput Error!\n");
for(i=;i<=n;i++)
{
for(j=;j<=n-i;j++)
printf(" ");
for(j=;j<=*i-;j++)
printf("%c",m);
printf("\n");
}
/*首先打n-1个空格后面接星号,随后空格逐渐减少,星号以2*1形式增加,
只打印了左边部分的空格 ,右边空格未打印。
打印出最大阶数*/
for(i=;i<=n-;i++)
{
for(j=;j<=i;j++)
printf(" ");
for(j=;j<*(n-i);j++)
printf("%c",m);
printf("\n");
}
//仿照上式,逆序打印,只是要注意要比上式少一阶
} //空心三角形
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<=)
printf("\t\t\tInput Error!\n");
for(i=;i<n+;i++)
{
for(j=;j<*n;j++)
{
if(j==n-i+||j==i+n-||i==n&&j%==)
printf("%c",m);
//j=n-i+1打印左边符号;j=n+i-1打印右边符号;i=n&&j%2==1打印最后一层星号
else
printf(" "); //除星号外其余全为空格
}
printf("\n");
}
} //十字形
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<=)
printf("\t\t\tInput Error!\n");
for(i=;i<=n;i++)
{
for(j=;j<=n;j++)
{
if(j==n||i==(n+)/)
/*按正常情况这是错的,应该是(j==(n+1)/2||i==(n+1)/2),但是由于界面
的问题 ,为了美观,我选择扩大横排的间距,把竖排的字符打印得更靠后*/
printf("%c ",m);
else
printf(" ");
}
printf("\n");
}
} //空心正方形
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<=)
printf("\t\t\tInput Error!\n");
for(i=;i<=n;i++)
{
for(j=;j<=n-;j++)
if(i==||j==||i==n)
printf(" %c",m);
else
printf(" ");
printf(" %c\n",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<=)
printf("\t\t\tInput Error!\n");
for(i=;i<=n;i++)
{
for(j=;j<=n-i;j++)
printf(" ");
for(k=;k<=n;k++)
printf("%c",m);
printf("\n");
}
}
c++打印实心菱形,空心三角形,十字星,空心正方形,实心平行四边形的更多相关文章
- java中打印实心菱形以及空心菱形的方法
一.打印效果 二.实现代码汇总 为了方便初学者对代码的理解,建议熟练t1到t5为各种三角的打印,然后再进行菱形的打印实现. package circulationDemo; import java.u ...
- Java 写三角形 空心三角形 菱形 空心菱形
闲来无事,练习了一下Java基础中的循环语句.练习循环语句,当然少不了,用*打印出来三角形.空心三角形.菱形等这样的几何图形. 粗心大意,失误两次: 一.三角形 遇到一些小问题: 二.金字塔 由于三角 ...
- 纯 CSS 实现实心三角形和空心三角形
一.实心三角形 1.代码 .div-angles{ width:; height:; border-style: solid; border-width:30px; border-color: tra ...
- 纯CSS制作空心三角形和实心三角形及其实现原理
纯CSS制作空心三角形和实心三角形及其实现原理 在一次项目中需要使用到空心三角形,我瞬间懵逼了.查阅了一些资料加上自己的分析思考,终于是达到了效果,个人感觉制作三角形是使用频率很高的,因此记录下来,供 ...
- html5 css写出一个实心三角形和空心三角行
原理:css中的border属性的特殊性. 实心三角形: html5: <div id="mydiv"></div> css: #mydiv{ height ...
- hdu 2091 空心三角形
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2091 空心三角形 Description 把一个字符三角形掏空,就能节省材料成本,减轻重量,但关键是为 ...
- hdoj 2091 空心三角形
空心三角形 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- CSS画一个三角形,CSS绘制空心三角形,CSS实现箭头
壹 ❀ 引 这两天因为项目工作较少,闲下来去看了GitHub上关于面试题日更收录的文章,毕竟明年有新的打算.在CSS收录中有一题是 用css创建一个三角形,并简述原理 .当然对于我来说画一个三角形是 ...
- css 三角形空心三角形的简单实现
<style> #talkbubble { width: 120px; height: 80px; position: relative; -moz-border-radius: 10px ...
随机推荐
- MySQL数据库(七)--索引
一 .介绍 为何要有索引? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此对查询语 ...
- Window 2003 IIS + MySQL + PHP + Zend 环境配置
图文详解 下载 Windows 2003 Zend, PHP, PHPMyadmin 与 MySQL Windows 2003 安装包中包含了 Zend,PHP 5.2.17,PHPWind8.7 和 ...
- centos7 下 yum 安装Nginx
centos7 下 yum 安装和配置 Nginx 添加yum源 Nginx不在默认的yum源中,可以使用epel或者官网的yum源,这里使用官网的yum源 rpm -ivh http://nginx ...
- mysql5.7兼容老版本不校验日期等字段
升级mysql5.7时,字段校验出现2个问题,一是不识别日期字段的 0000-00-00 00:00:00,二是有些非空且无默认值的字段,插入时必须指定具体的值. 修改/etc/my.cnf 可在[m ...
- 201671010450-姚玉婷-实验十四 团队项目评审&课程学习总结
项目 内容 所属科目 软件工程http://www.cnblogs.com/nwnu-daizh 作业要求 https://www.cnblogs.com/nwnu-daizh/p/11093584. ...
- JMeter基础【第三篇】JMeter5.1元件作用域及执行顺序
执行顺序,大家可以实践验证,加深印象. 最后,给大家说一个万能且保险的方法:放到对应的取样器下面即可.
- zzulioj - 2624: 小H的奇怪加法
题目链接:http://acm.zzuli.edu.cn/problem.php?id=2624 题目描述 小H非常喜欢研究算法,尤其是各种加法.没错加法包含很多种,例如二进制中的全加,半加等.全加: ...
- java 多态(向上转型)
多态的定义与使用格式 多态的定义格式:就是父类的引用变量指向子类对象 父类类型 变量名 = new 子类类型(); 变量名.方法名(); 普通类多态定义的格式 父类 变量名 = new 子类(); ...
- 【字符串】KMP
Algorithm Task 给定一个文本串 \(S\) 和一个模式串 \(T\),求 \(T\) 在 \(S\) 中出现的所有位置. Limitations 要求时空复杂度均为线性. Solutio ...
- SQL之存储过程详细介绍及语法(转)
1:定义 存储过程(stored procedure)是一组为了完成特定功能的SQL语句集合,经编译后存储在服务器端的数据库中,利用存储过程可以加速SQL语句的执行. 存储过程分为系统存储过程和自定义 ...