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

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

接触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

相关文章

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

Ubuntu 24.04启用root图形登录的操作流程

《Ubuntu24.04启用root图形登录的操作流程》Ubuntu默认禁用root账户的图形与SSH登录,这是为了安全,但在某些场景你可能需要直接用root登录GNOME桌面,本文以Ubuntu2... 目录一、前言二、准备工作三、设置 root 密码四、启用图形界面 root 登录1. 修改 GDM 配

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

在Linux中改变echo输出颜色的实现方法

《在Linux中改变echo输出颜色的实现方法》在Linux系统的命令行环境下,为了使输出信息更加清晰、突出,便于用户快速识别和区分不同类型的信息,常常需要改变echo命令的输出颜色,所以本文给大家介... 目python录在linux中改变echo输出颜色的方法技术背景实现步骤使用ANSI转义码使用tpu

Java中的for循环高级用法

《Java中的for循环高级用法》本文系统解析Java中传统、增强型for循环、StreamAPI及并行流的实现原理与性能差异,并通过大量代码示例展示实际开发中的最佳实践,感兴趣的朋友一起看看吧... 目录前言一、基础篇:传统for循环1.1 标准语法结构1.2 典型应用场景二、进阶篇:增强型for循环2.

Python循环结构全面解析

《Python循环结构全面解析》循环中的代码会执行特定的次数,或者是执行到特定条件成立时结束循环,或者是针对某一集合中的所有项目都执行一次,这篇文章给大家介绍Python循环结构解析,感兴趣的朋友跟随... 目录for-in循环while循环循环控制语句break语句continue语句else子句嵌套的循

MySQL存储过程之循环遍历查询的结果集详解

《MySQL存储过程之循环遍历查询的结果集详解》:本文主要介绍MySQL存储过程之循环遍历查询的结果集,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言1. 表结构2. 存储过程3. 关于存储过程的SQL补充总结前言近来碰到这样一个问题:在生产上导入的数据发现

C#如何去掉文件夹或文件名非法字符

《C#如何去掉文件夹或文件名非法字符》:本文主要介绍C#如何去掉文件夹或文件名非法字符的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#去掉文件夹或文件名非法字符net类库提供了非法字符的数组这里还有个小窍门总结C#去掉文件夹或文件名非法字符实现有输入字

python编写朋克风格的天气查询程序

《python编写朋克风格的天气查询程序》这篇文章主要为大家详细介绍了一个基于Python的桌面应用程序,使用了tkinter库来创建图形用户界面并通过requests库调用Open-MeteoAPI... 目录工具介绍工具使用说明python脚本内容如何运行脚本工具介绍这个天气查询工具是一个基于 Pyt