打印由*组成的菱形

news/2024/10/29 0:29:37/

 如图所示,这是我们要用代码所实现的图形。

那么我们该如何实现这个呢,对于这种题,我们只有静下心来找其中的规律了。

我们先来看看它的上面部分:

它是由空格和星号组成的,那么我们是不是可以先打印空格然后再打印星号呢?先打印空格染后再打印星号,之后换行接着打印。

那么有上面的思想,我们就只用管左边的空格了,先来看看星号的规律是1 3 5 7 9 11 13,所以我们可以用2*i-1来表示。空格则是6 5 4 3 2 1,我们可以用7-i来表示。那么我们接下来就实现我们的上半部分的代码:

  int rows = 13;int i = 0; int j = 0;int space = 0;// 打印上半部分for (i = 1; i <= rows / 2 + 1; i++) 
{// 打印空格for (space = 1; space <= rows / 2 + 1 - i; space++) {printf(" ");}// 打印*for (j = 1; j <= 2 * i - 1; j++) {printf("*");}printf("\n");}

为什么rows / 2 + 1我不直接写成7呢?因为这样写我们后面可以通过改变rows的值而打印其他的菱形,一行完成后我们就换行接着打印下一行中的内容。

 相同的道理我们来看看下半部分:

 先看看星号:11 9 7 5 3 1,同样还是2*i-1

空格则是:1 2 3 4 5 6

来看看下半部分的代码实现:

// 打印下半部分
for (i = rows / 2; i >= 1; i--) 
{// 打印空格for (space = 1; space <= rows / 2 + 1 - i; space++) {printf(" ");}// 打印*for (j = 1; j <= 2 * i - 1; j++) {printf("*");}printf("\n");
}

上下部分都搞定后,来看看整体代码:

int main() 
{int rows = 13;int i = 0; int j = 0;int space = 0;// 打印上半部分for (i = 1; i <= rows / 2 + 1; i++) 
{// 打印空格for (space = 1; space <= rows / 2 + 1 - i; space++) {printf(" ");}// 打印*for (j = 1; j <= 2 * i - 1; j++) {printf("*");}printf("\n");
}// 打印下半部分for (i = rows / 2; i >= 1; i--) 
{// 打印空格for (space = 1; space <= rows / 2 + 1 - i; space++) {printf(" ");}// 打印*for (j = 1; j <= 2 * i - 1; j++) {printf("*");}printf("\n");}return 0;
}

那么以上就完成了对它的实现了!

我们来改一下rows的值,看看效果:

 今天就到这里咯,拜拜!


http://www.ppmy.cn/news/1201494.html

相关文章

java-对Integer.MAX_VALUE做加法

public static void main(String[] args) {int maxValue Integer.MAX_VALUE;System.out.println("maxValue1 " (maxValue1));System.out.println("maxValue2 " (maxValue2));System.out.println("maxValue3 " (maxValue3));}//结果 maxVa…

Maven3.9.1安装及环境变量配置

一、Maven的下载与安装 maven各版本下载地址 打开链接后自行选择对应版本 下载完成后解压安装,最好别选择c盘,安装目录路径等使用英文,避免产生其他问题 我这里选择的是D盘 二、Maven的环境变量配置 2.1、右键点击此电脑选择属性&#xff0c;点击高级系统设置&#xff0c;点…

Leetcode刷题【hot100】字母异位词分组

给你一个字符串数组&#xff0c;请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs ["eat", "tea", "tan", "ate", "nat", …

Mysql数据库 9.SQL语言 查询语句 连接查询、子查询

连接查询 通过查询多张表&#xff0c;用连接查询进行多表联合查询 关键字&#xff1a;inner join 内连接 left join 左连接 right join 右连接 数据准备 创建新的数据库&#xff1a;create database 数据库名; create database db_test2; 使用数据库&#xff1a;use 数据…

钉钉企业微应用开发C#+VUE

钉钉相信很多人都用过或听过&#xff0c;企业OA审批&#xff0c;考勤&#xff0c;沟通方方面面都支持。但是有的需求自定义表单的无法满足&#xff0c;例如带有业务特性的数据来源&#xff0c;可能是内部其他系统&#xff0c;以及数据筛选分析没有那么方便&#xff0c;钉钉官方…

OpenAI 年度大戏即将揭晓,5 大剧透全方位曝光

北京时间 11 月 7 日凌晨 2 点&#xff0c;2023 年度最受关注的 AI 活动 OpenAI DevDay 将正式揭晓。2022 年 11 月&#xff0c;OpenAI 正式发布了 ChatGPT&#xff0c;这个改变整个 AI 发展进程和轨迹的颠覆性产品。OpenAI 选择在 ChatGPT 发布一周年之际举行这次活动&#xf…

【UDS基础】简单介绍“统一诊断服务“

1. 前言 我们将在这个实用教程中介绍UDS的基础知识,重点关注在CAN总线上的UDS(UDSonCAN)和CAN诊断(DoCAN)。此外,我们还会介绍ISO-TP协议,并解释UDS、OBD2、WWH-OBD和OBDonUDS之间的差异。 最后,我们将解释如何请求、记录和解码UDS消息,并提供一些实际示例,例如记录…

k8s开放接口

开放接口 Kubernetes 作为云原生应用的基础调度平台,相当于云原生的操作系统,为了便于系统的扩展,Kubernetes 中开放的以下接口,可以分别对接不同的后端,来实现自己的业务逻辑: 容器运行时接口(CRI):提供计算资源容器网络接口(CNI):提供网络资源容器存储接口(CSI…