输出图形(循环程序,任意字符) 三角形、矩形、平行四边形、菱形

本文主要是介绍输出图形(循环程序,任意字符) 三角形、矩形、平行四边形、菱形,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

接触C有一段时间了,看多好次输出各种图形的练习题,自己也曾经编写过,今天整理在一起,为了给自己留下记录,也为了跟同样在学习路上的朋友们一起交流;

代码采用主函数、分函数结构

实现以下功能

1、选择性输出 想要的图形 以及 图形大小

2、循环功能,主动选择退出

3、键盘任意输入,只有符合要求的输入(0~4)被执行,其他均为非法输入,返回程序,重新选择

4、屏蔽输入结束时的“回车”,用函数 fflush(stdin);   这个函数的作用是清除缓存,为下一次输入做准备

部分截图:

以下是代码:供参考

/*输出图形小程序*/
#include "stdio.h"
#include "stdlib.h"
//声明函数,三角形、矩形、平行四边形、菱形 
int sanj();
int juxi();
int pinx();
int ling();
void main()
{int a;printf("*******输出图形小程序*******\n\n\t【1】三角形\n\t【2】矩形\n\t【3】平行四边形\n\t【4】菱形\n\t【0】退出\n\n");printf("请选择要执行代号: ");//scanf("%d",&a); 			//这种取值方法只能取数值 a=getchar();				//键盘获取任意字符 printf("\n\n");a=a-'0';				   //将字符转换为ASCII码 ,并与 ’0‘ 比较大小 if(!(a>=0&&a<=4))  a=5;    //对于比值不是 0-4 之间的的数统一赋值为 5 (不是0~4的都可以) switch(a)				   //进入对应的函数	{case 1: sanj();break;case 2: juxi();break;case 3: pinx();break;case 4: ling();break;case 0: exit(0);default: printf("选择错误,返回主程序\n\n");fflush(stdin);		//这个函数的作用是清除缓存,返回主函数之前使用, 为下一次取值做准备main();			//返回主函数 }
}int sanj()			//输出三角形 函数 
{	int s1,s2,s3,s;printf("【1】三角形  行数:  ");scanf("%d",&s);printf("\n\n ");s3=s*2-1;printf("\n");for(s1=1;s1<=s;s1++){	printf("\t");for(s2=1;s2<=s-s1;s2++)printf("  ");for(s3=1;s3<=s1*2-1;s3++)printf("* ");printf("\n");}printf("\n\n");fflush(stdin);		//这个函数的作用是清除缓存,返回主函数之前使用, 为下一次取值做准备main();			//返回主函数 ;
}int juxi()		//输出矩形 函数 
{	int s1,s2,s;printf("【2】矩形 行数:  ");scanf("%d",&s);printf("\n\n");for(s1=1;s1<=s;s1++){	printf("\t");for(s2=1;s2<=s;s2++)printf("* ");printf("\n");}printf("\n\n");fflush(stdin);		//这个函数的作用是清除缓存,返回主函数之前使用, 为下一次取值做准备main();			//返回主函数 
}int pinx()		//输出平行四边形 函数 
{	int s1,s2,s3,s;printf("【3】平行四边形 行数:  ");scanf("%d",&s);printf("\n\n");for(s3=1;s3<=s;s3++){printf("\t");for(s1=1;s1<=s-s3;s1++)printf(" ");for(s2=1;s2<=s;s2++)printf("* ");printf("\n");}printf("\n\n");fflush(stdin);		//这个函数的作用是清除缓存,返回主函数之前使用, 为下一次取值做准备main();			//返回主函数 
}
int ling()		//输出菱形 函数 
{	int s1,s2,s3,s4,s5,s,row;printf("【4】菱形 行数:  ");scanf("%d",&s);printf("\n\n");row=s/2;if(s%2==0)		//输出行数为 偶数 {for(s1=1;s1<=s;s1++){if(s1<=row){printf("\t");for(s2=1;s2<=row-s1;s2++)printf("  ");for(s3=1;s3<=s1*2-1;s3++)printf("* ");printf("\n");}else{printf("\t");for(s4=1;s4<=s1-row-1;s4++)printf("  ");for(s5=1;s5<=(s-s1)*2+1;s5++)printf("* ");printf("\n");}}}else		//输出行数为 奇数 {   row++;for(s1=1;s1<=s;s1++){if(s1<=row){printf("\t");for(s2=1;s2<=row-s1;s2++)printf("  ");for(s3=1;s3<=s1*2-1;s3++)printf("* ");printf("\n");}else{printf("\t");for(s4=1;s4<=s1-row;s4++)printf("  ");for(s5=1;s5<=(s-s1)*2+1;s5++)printf("* ");printf("\n");}}}printf("\n\n");fflush(stdin);		//这个函数的作用是清除缓存,返回主函数之前使用, 为下一次取值做准备main();			//返回主函数 
}

 

 

 

 

这篇关于输出图形(循环程序,任意字符) 三角形、矩形、平行四边形、菱形的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/626630

相关文章

利用c++判断水仙花数并输出示例代码

《利用c++判断水仙花数并输出示例代码》水仙花数是指一个三位数,其各位数字的立方和恰好等于该数本身,:本文主要介绍利用c++判断水仙花数并输出的相关资料,文中通过代码介绍的非常详细,需要的朋友可以... 以下是使用C++实现的相同逻辑代码:#include <IOStream>#include <vec

Django调用外部Python程序的完整项目实战

《Django调用外部Python程序的完整项目实战》Django是一个强大的PythonWeb框架,它的设计理念简洁优雅,:本文主要介绍Django调用外部Python程序的完整项目实战,文中通... 目录一、为什么 Django 需要调用外部 python 程序二、三种常见的调用方式方式 1:直接 im

浅析python如何去掉字符串中最后一个字符

《浅析python如何去掉字符串中最后一个字符》在Python中,字符串是不可变对象,因此无法直接修改原字符串,但可以通过生成新字符串的方式去掉最后一个字符,本文整理了三种高效方法,希望对大家有所帮助... 目录方法1:切片操作(最推荐)方法2:长度计算索引方法3:拼接剩余字符(不推荐,仅作演示)关键注意事

SpringBoot实现图形验证码的示例代码

《SpringBoot实现图形验证码的示例代码》验证码的实现方式有很多,可以由前端实现,也可以由后端进行实现,也有很多的插件和工具包可以使用,在这里,我们使用Hutool提供的小工具实现,本文介绍Sp... 目录项目创建前端代码实现约定前后端交互接口需求分析接口定义Hutool工具实现服务器端代码引入依赖获

使用Python在PDF中绘制多种图形的操作示例

《使用Python在PDF中绘制多种图形的操作示例》在进行PDF自动化处理时,人们往往首先想到的是文本生成、图片嵌入或表格绘制等常规需求,然而在许多实际业务场景中,能够在PDF中灵活绘制图形同样至关重... 目录1. 环境准备2. 创建 PDF 文档与页面3. 在 PDF 中绘制不同类型的图形python

Mysql 驱动程序的程序小结

《Mysql驱动程序的程序小结》MySQL驱动程序是连接应用程序与MySQL数据库的重要组件,根据不同的编程语言和应用场景,MySQL提供了多种驱动程序,下面就来详细的了解一下驱动程序,感兴趣的可以... 目录一、mysql 驱动程序的概念二、常见的 MySQL 驱动程序1. MySQL Connector

java程序远程debug原理与配置全过程

《java程序远程debug原理与配置全过程》文章介绍了Java远程调试的JPDA体系,包含JVMTI监控JVM、JDWP传输调试命令、JDI提供调试接口,通过-Xdebug、-Xrunjdwp参数配... 目录背景组成模块间联系IBM对三个模块的详细介绍编程使用总结背景日常工作中,每个程序员都会遇到bu

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决

《MyBatis/MyBatis-Plus同事务循环调用存储过程获取主键重复问题分析及解决》MyBatis默认开启一级缓存,同一事务中循环调用查询方法时会重复使用缓存数据,导致获取的序列主键值均为1,... 目录问题原因解决办法如果是存储过程总结问题myBATis有如下代码获取序列作为主键IdMappe

Java中字符编码问题的解决方法详解

《Java中字符编码问题的解决方法详解》在日常Java开发中,字符编码问题是一个非常常见却又特别容易踩坑的地方,这篇文章就带你一步一步看清楚字符编码的来龙去脉,并结合可运行的代码,看看如何在Java项... 目录前言背景:为什么会出现编码问题常见场景分析控制台输出乱码文件读写乱码数据库存取乱码解决方案统一使