C语言:打印菱形(输入菱形上半部分行数)

news2024/11/18 17:32:22

题目:

用C语言在屏幕上输入以下图案:

                    

 =========================================================================

                       

思路:

总体思路:

(一).

输入菱形上半部分行数 -- scanf()函数

         

(二).

使用 for循环 进行 菱形上半部分三角形 打印

菱形上半部分三角形行数 -- i < line

(注:只是菱形上半部分三角形的行数,上半部分是 正三角

       

使用 内嵌for循环 进行循环打印出上半部分菱形的 空格

上半部分菱形 空格 规律

j < line - 1 - i

line等于7,那么,

第一行 就打印 7-1-0=6 空格

第二行 就打印 7-1-1=5空格

           

内嵌第二个for循环打印上半部分菱形的 * 号

上半部分菱形 * 号 规律

j < 2 * i + 1

line等于7,那么,

第一行 就打印 2*0+1=1*号

第二行 就打印 2*1+1=3*号

                

打印完一行后就进行换行

printf("\n");

            

(三).

使用 for循环 进行 菱形下半部分三角形打印

菱形下半部分三角形行数 -- i < line-1

(注:是菱形下半部分三角形的行数,下半部分是 倒三角

              

使用 内嵌for循环 进行循环打印出下半部分菱形的 空格

下半部分菱形 空格 规律

j <= i

line-1 为 7-1=6 ,那么,

第一行 就打印

j=0,i=0,j<=i 

1个 空格

第二行 就打印

j=0,i=1,j<=i,

2个 空格

           

内嵌第二个for循环打印下半部分菱形的 * 号

下半部分菱形 * 号 规律

j < 2*(line-1-i)-1

line-1 为 7-1=6 ,那么,

第一行 就打印 2*(7-1-0)-1=11 个 *号

第二行 就打印 2*(7-1-1)-1=9 个 *号

                

打印完一行后就进行换行

printf("\n");

                 


                 

第一步:

输入菱形上半部分行数 -- scanf()函数

                     

实现代码:

#include <stdio.h>
int main()
{
	//输入菱形上半部分行数 -- scanf()函数:
	int line = 0; //上半行数
	//输入:
	scanf("%d", &line);


	return 0;
}

实现图片:

                 


                 

第二步:

(1).

使用 for循环 进行 菱形上半部分三角形 打印

菱形上半部分三角形行数 -- i < line

(注:只是菱形上半部分三角形的行数,上半部分是 正三角

       

(2).

使用 内嵌for循环 进行循环打印出上半部分菱形的 空格

上半部分菱形 空格 规律

j < line - 1 - i

line等于7,那么,

第一行 就打印 7-1-0=6 空格

第二行 就打印 7-1-1=5空格

           

(3).

内嵌第二个for循环打印上半部分菱形的 * 号

上半部分菱形 * 号 规律

j < 2 * i + 1

line等于7,那么,

第一行 就打印 2*0+1=1*号

第二行 就打印 2*1+1=3*号

                

(4).

打印完一行后就进行换行

printf("\n");

                     

实现代码:

#include <stdio.h>
int main()
{
	//输入菱形上半部分行数 -- scanf()函数:
	int line = 0; //上半行数
	//输入:
	scanf("%d", &line);

	//菱形上半部分的打印:行数 -- line
	int i = 0;
	for (i = 0; i < line; i++)
	{
		//打印一行,先打印空格,再打印*号

		//内嵌for循环 打印空格:
		//上半部分空格规律:
		//			line-1-i:假设行数是7,
		//第一行打印7-1-0=6个空格;第二行打印7-1-1=5个空格……
		int j = 0;
		for (j = 0; j < line-1-i; j++)
		{
			printf(" "); //打印空格
		}

		//内嵌第二个for循环 打印*号:
		//上半部分*号规律:
		//			2*i+1:假设行数是7,
		//第一行打印2*0+1个*号;第二行打印2*1+1个*号……
		for (j = 0; j < 2*i+1; j++)
		{
			printf("*"); //打印*号
		}

		//打印完一行后就进行换行:
		printf("\n");
	}

	return 0;
}

实现图片:

                 


                 

第三步:

(1).

使用 for循环 进行 菱形下半部分三角形打印

菱形下半部分三角形行数 -- i < line-1

(注:是菱形下半部分三角形的行数,下半部分是 倒三角

              

(2).

使用 内嵌for循环 进行循环打印出下半部分菱形的 空格

下半部分菱形 空格 规律

j <= i

line-1 为 7-1=6 ,那么,

第一行 就打印

j=0,i=0,j<=i 

1个 空格

第二行 就打印

j=0,i=1,j<=i,

2个 空格

           

(3).

内嵌第二个for循环打印下半部分菱形的 * 号

下半部分菱形 * 号 规律

j < 2*(line-1-i)-1

line-1 为 7-1=6 ,那么,

第一行 就打印 2*(7-1-0)-1=11 个 *号

第二行 就打印 2*(7-1-1)-1=9 个 *号

                

(4).

打印完一行后就进行换行

printf("\n");

                     

实现代码:

#include <stdio.h>
int main()
{
	//输入菱形上半部分行数 -- scanf()函数:
	int line = 0; //上半行数
	//输入:
	scanf("%d", &line);

	//菱形上半部分的打印:行数 -- line
	int i = 0;
	for (i = 0; i < line; i++)
	{
		//打印一行,先打印空格,再打印*号

		//内嵌for循环 打印空格:
		//上半部分空格规律:
		//			line-1-i:假设行数是7,
		//第一行打印7-1-0=6个空格;第二行打印7-1-1=5个空格……
		int j = 0;
		for (j = 0; j < line-1-i; j++)
		{
			printf(" "); //打印空格
		}

		//内嵌第二个for循环 打印*号:
		//上半部分*号规律:
		//			2*i+1:假设行数是7,
		//第一行打印2*0+1个*号;第二行打印2*1+1个*号……
		for (j = 0; j < 2*i+1; j++)
		{
			printf("*"); //打印*号
		}

		//打印完一行后就进行换行:
		printf("\n");
	}

	//菱形下半部分的打印:行数 -- line-1
	for (i = 0; i < line-1; i++)
	{
		//打印一行,先打印空格,再打印*号
		
		//内嵌for循环 打印空格:
		//下半部分空格规律:
		//			j<=i:假设行数是7-1=6,
		//第一行打印j=0,i=0,j<=i,1个空格;第二行打印j=0,i=1,j<=i,2个空格……
		int j = 0;
		for (j = 0; j <= i; j++)
		{
			printf(" "); //打印空格
		}

		//内嵌第二个for循环 打印*号:
		//下半部分*号规律:
		//		2*(line-1-i)-1:假设行数是7-1=6,
		//第一行打印2*(7-1-0)-1,11个*号;第二行打印2*(7-1-1)-1,9个*号……
		for (j = 0; j < 2*(line-1-i)-1; j++)
		{
			printf("*"); //打印*号
		}

		//打印完一行后就进行换行:
		printf("\n");
	}

	return 0;
}

实现图片:

                    

最终代码和实现效果

最终代码:

#include <stdio.h>
int main()
{
	//输入菱形上半部分行数 -- scanf()函数:
	int line = 0; //上半行数
	//输入:
	scanf("%d", &line);

	//菱形上半部分的打印:行数 -- line
	int i = 0;
	for (i = 0; i < line; i++)
	{
		//打印一行,先打印空格,再打印*号

		//内嵌for循环 打印空格:
		//上半部分空格规律:
		//			line-1-i:假设行数是7,
		//第一行打印7-1-0=6个空格;第二行打印7-1-1=5个空格……
		int j = 0;
		for (j = 0; j < line-1-i; j++)
		{
			printf(" "); //打印空格
		}

		//内嵌第二个for循环 打印*号:
		//上半部分*号规律:
		//			2*i+1:假设行数是7,
		//第一行打印2*0+1个*号;第二行打印2*1+1个*号……
		for (j = 0; j < 2*i+1; j++)
		{
			printf("*"); //打印*号
		}

		//打印完一行后就进行换行:
		printf("\n");
	}

	//菱形下半部分的打印:行数 -- line-1
	for (i = 0; i < line-1; i++)
	{
		//打印一行,先打印空格,再打印*号
		
		//内嵌for循环 打印空格:
		//下半部分空格规律:
		//			j<=i:假设行数是7-1=6,
		//第一行打印j=0,i=0,j<=i,1个空格;第二行打印j=0,i=1,j<=i,2个空格……
		int j = 0;
		for (j = 0; j <= i; j++)
		{
			printf(" "); //打印空格
		}

		//内嵌第二个for循环 打印*号:
		//下半部分*号规律:
		//		2*(line-1-i)-1:假设行数是7-1=6,
		//第一行打印2*(7-1-0)-1,11个*号;第二行打印2*(7-1-1)-1,9个*号……
		for (j = 0; j < 2*(line-1-i)-1; j++)
		{
			printf("*"); //打印*号
		}

		//打印完一行后就进行换行:
		printf("\n");
	}

	return 0;
}

实现效果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/681401.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于5G网络的视频远程操控应用实践——低延迟视频技术及应用

本次分享将分为三个部分&#xff1a;第一部分介绍低延迟视频所涉及到的关键技术&#xff0c;包括低延迟视频编解码、视频传输、视频处理低延时框架、视频采集和显示&#xff1b;第二部分重点介绍5G环境下低延迟视频对抗弱网提出的要求&#xff0c;包括&#xff1a;弱网状态的探…

Vulcanexus-一体化ROS2工具集

Vulcanexus机器人操作系统ROS2一站式工具集&#xff08;GalacticHumble&#xff09;2022 Humble Hierro v2 x86_64 arm64 Ubuntu Jammy (22.04) Vulcanexus是ROS 2的一站式工具集&#xff0c;用于构建机器人应用程序。它固定了DDS中间件&#xff0c;使用了Fast DDS&#xff…

word文件未保存 如何恢复

问题 word文件未保存 如何恢复 详细问题 笔者关闭已编辑完成的word文件&#xff0c;误触不保存&#xff0c;再次打开文件恢复至编辑前的状态&#xff0c;如何恢复至编辑完成后的状态 解决方案 文件 → \rightarrow →打开 → \rightarrow →恢复未保存的文件 或 1、打开 …

Spring关于@Configuration配置处理流程解析

Configuration配置处理流程解析 AnnotationConfigApplicationContext基于注解配置ApplicationContext启动刷新流程Spring关于Configuration解析处理流程那些年被忽略问题 AnnotationConfigApplicationContext基于注解配置 Spring通过上下文应用AnnotationConfigApplicationCon…

10- c语言复合数据类型 (C语言)

一 结构体 1.1 引入 1、在自然界中 任何一个物体&#xff0c;都有多个属性&#xff0c;如果用计算机语言来描述的话&#xff0c;一个属性也许可以用某一个基本数据类型来表示&#xff0c;但是当有多个属性的时候&#xff0c;一个基本数据类型就不能表示了。例如&#xff1a;学…

ML算法——线代预备知识随笔【机器学习】

文章目录 数学预备知识3、线性代数3.1、矩阵奇异值分解&#xff08;SVD&#xff09;3.2、广义逆矩阵&#xff08;Moore-Penrose &#xff09;3.3、数据白化&#xff08;Data Whitening&#xff09;3.4、向量导数 4、其它 数学预备知识 3、线性代数 3.1、矩阵奇异值分解&#…

最小化暗数据风险的 5 个步骤

超过一半的公司数据存储库包含哪些内容&#xff0c;但大多数人甚至不知道自己拥有什么&#xff1f;这是暗数据&#xff0c;是公司在不知不觉中收集的信息&#xff0c;它们不是日常业务交互的组成部分&#xff0c;因此通常位于后台。 虽然这些数据对于大多数公司来说似乎是不必…

C语言——数据的输入输出

数据的输入输出 前言&#xff1a;一、格式输入输出函数1.格式输出函数printf&#xff08;&#xff09;2.格式输入函数scanf&#xff08;&#xff09; 二、字符输入输出函数1.字符输出函数putchar&#xff08;&#xff09;2.字符输入函数getchar&#xff08;&#xff09; 三、字…

JUC并发工具类--阻塞队列BlockingQueue

JUC并发工具类--阻塞队列BlockingQueue 队列队列&#xff08;Queue接口&#xff09;提供的方法 阻塞队列阻塞队列&#xff08;BlockingQueue接口&#xff09;提供的方法应用场景JUC包下的阻塞队列如何选择适合的阻塞队列选择策略线程池对于阻塞队列的选择 队列 是限定在一端进…

Servlet技术实现服务端,Android平台作为客户端,实现一个个人店铺

背景&#xff1a; 使用Servlet技术实现服务端&#xff0c;使用Android平台作为客户端&#xff0c;实现一个个人店铺&#xff0c;店铺商品不限。功能要求如下&#xff1a; 1. 提供登录、注册功能&#xff1b;&#xff08;10分&#xff09; 2. 首页面包括“商品列表”子页面、“…

ATA-8000系列射频功率放大器——在生物医学中的应用

ATA-8000系列射频功率放大器——在生物医学研究中的应用 ATA-8000系列是一款射频功率放大器。其P1dB输出功率500W&#xff0c;饱和输出功率最大1000W。增益数控可调&#xff0c;一键保存设置&#xff0c;提供了方便简洁的操作选择&#xff0c;可与主流的信号发生器配套使用&…

VulnHub靶机渗透:SKYTOWER: 1

SKYTOWER: 1 靶机环境介绍nmap扫描端口扫描服务扫描漏洞扫描总结 80端口目录爆破 3128端口获取立足点获取立足点2提权总结 靶机环境介绍 https://www.vulnhub.com/entry/skytower-1,96/ 靶机IP&#xff1a;192.168.56.101 kali IP&#xff1a;192.168.56.102 nmap扫描 端口扫…

h5手写签名示例

前言 业务中需要用户进行签字&#xff0c;如何让用户在手机端进行签字&#xff1f; 示例如下 代码已分享至Gitee: https://gitee.com/lengcz/qianming 原示例&#xff1a; https://www.jq22.com/jquery-info13488 H5实现手写签字 创建一个html页面 <!DOCTYPE html> …

<Oracle>《Linux 下安装Oracle数据库 - Oracle 19C By CentOS 8 》(第一部分)

《Linux 下安装Oracle数据库 - Oracle 19C By CentOS 8 》&#xff08;第一部分&#xff09; 1 说明1.1 前言1.2 资源下载 2 安装步骤2.1 上传安装包2.2 下载数据库预安装包2.3 安装数据库预安装包 1 说明 1.1 前言 本文是Linux系统命令行模式安装Oracle数据库的学习实验记录…

【American English】实验室常用口语对话

不懂不丢人&#xff0c;不懂装懂才丢人。最近有点犯这毛病&#xff0c;多写一些东西消除一下。 无论什么知识都是多了才能成体系&#xff0c;更多自己在美国的小总结可见专栏&#xff1a;English。 文章目录 初次见面日常问候找寻某个东西找寻某个人 初次见面 Nice to meet you…

Linux之tar安装

目录 Linux之tar安装 定义 工作过程 语法格式 参数及用法 使用源代码安装软件的优点 注意&#xff1a;源代码编译环境 操作流程 解包 —— tar 配置 —— ./configure 编译 —— make 安装 —— make install 案例 --- 安装Apache服务 1.获取安装包地址并下载 2…

衣服面料相关基础

总结自 BiliBili视频&#xff1a;原来衣服的面料还能这么选&#xff0c;几个方法教你买到优质的短袖&#xff0c;再也不怕买衣服踩坑了 面子里子 既不能皱巴巴 又不能不透气 混纺 涤纶 粘纤 氨纶 涤纶 不变性 挺阔感 氨纶 弹性 粘纤 吸水透气40-50% 怕热 真丝与亚麻 …

Python 进阶(三):Python使用ORM框架SQLAlchemy操作Oracle数据库

Python使用ORM框架SQLAlchemy操作Oracle数据库 前言1. 安装Oracle Instant Client2. 安装依赖库3. 导入模块并创建引擎4. 操作oracle数据库4.1 新增数据4.2 查询数据4.3 更新数据4.4 删除数据 前言 要详细连接Oracle数据库并使用SQLAlchemy进行操作&#xff0c;按照以下步骤进…

云计算与OpenStack简介

文章目录 云计算与OpenStack简介什么是云服务模式部署模型 Openstac概述Openstack服务组件 云计算与OpenStack简介 什么是云 云是一种服务&#xff0c;就像我们去餐厅吃饭一样&#xff0c;只需要点菜&#xff0c;不需要知道厨师怎样烹饪食物。在云中&#xff0c;用户也只需要…

chatgpt赋能python:Python数据预处理:优化数据分析的重要步骤

Python数据预处理&#xff1a;优化数据分析的重要步骤 在数据分析过程中&#xff0c;数据预处理是非常重要的步骤。在这个阶段&#xff0c;我们可以清洗、转换和整理数据&#xff0c;以便更好地进行数据分析和建模。Python是一个强大的工具&#xff0c;可以帮助我们优化数据预…