打印由*组成的菱形

news2024/11/26 2:30:35

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

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

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

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

那么有上面的思想,我们就只用管左边的空格了,先来看看星号的规律是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.coloradmin.cn/o/1179268.html

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

相关文章

2023 年 API 安全状况

在当今快速变革的数字世界中&#xff0c;API 已成为快速交付业务功能的关键。这些数字连接器支撑着我们今天见证的大部分企业创新&#xff0c;从无缝的客户体验到集成的合作伙伴生态系统。 随着 API 使用量的激增&#xff0c;潜在风险呈指数级增长。让我们用硬数据来说明 API …

【redis 面试题】③ 缓存雪崩

文章目录 前言一、什么是缓存雪崩二、缓存雪崩的解决方案 前言 跟着B站的黑马程序员学习面试题&#xff0c;目前是redis的第三个内容——缓存雪崩 课程传送门&#xff1a;redis——缓存雪崩 一、什么是缓存雪崩 缓存雪崩是设置缓存时采用了相同的过期时间&#xff0c;导致缓存…

Pytorch 快速参数权重初始化

定义一个函数&#xff1a; 这里比如要初始化2维卷积权重值&#xff0c;采用xaiver 数据分布&#xff0c;还有很多其他的数据分布可以探索 def weights_init(m):if isinstance(m, nn.Conv2d):xavier(m.weight.data)xavier(m.bias.data) 然后定义一个含2维卷积的网络&#xff…

HTML5+CSS3小实例:带功能区的图片悬停特效

实例:带功能区的图片悬停特效 技术栈:HTML+CSS 效果: 源码: 【HTML】 <!DOCTYPE html> <html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta name="viewport" content=&…

esxi 6.7下安装黑裙

esxi上创建一个黑裙系统的虚拟机&#xff0c;用来存资料 一、工具 硬件&#xff1a; 工控机&#xff1a;装有esxi6.7系统&#xff08;192.168.100.2&#xff09;&#xff0c;配置&#xff1a;3865U&#xff0c;16G内存&#xff0c;120Gmsata120sata硬盘&#xff0c;6个网口 主…

oracle转换人大金仓全过程

前提 Oracle服务器&#xff1a;创建用户&#xff0c;导入数据库人大金仓服务&#xff1a;创建用户 注意&#xff1a;两者的参数设置要保持一致&#xff08;数字集UTF-8&#xff09;&#xff0c;人大金仓设置大小字符不敏感 人大金仓工具介绍 数字库开发管理工具&#xff1a;链…

【PTE-day03 报错注入】

报错注入 1、报错注入 group by count2、报错注入 extractvalue3、报错注入updatexml1、报错注入 group by count http://124.222.124.9:8888/Less-5/?id=-1 union select 1,count(*),concat((select database()),ceil(rand(0)*2)) as a from information_schema.tables grou…

思维模型 飞轮效应

本系列文章 主要是 分享 思维模型&#xff0c;涉及各个领域&#xff0c;重在提升认知。万事开头难&#xff0c;坚持就不难。 1 飞轮效应的应用 1.1使用飞轮效应的亚马逊 亚马逊的创始人杰夫贝索斯&#xff08;Jeff Bezos&#xff09;提出了“飞轮理论”&#xff0c;即通过不断…

jira Licenses更新步骤

有时候我们不想花钱使用jira,那么只有通过一个月以续期的方式来使用jira。下面提供下自己实测的方式 1、获取License Key 登录地址&#xff1a;https://my.atlassian.com 登录自己的Google账号&#xff0c;进入到下面账号&#xff0c;然后点击“New Trial License” product上…

HTB——introduction to active directory

文章目录 一、Active directory structure二、Active Directory Terminology 一、Active directory structure Active Directory &#xff08;AD&#xff09; 是用于 Windows 网络环境的目录服务。它是一种分布式分层结构&#xff0c;允许集中管理组织的资源&#xff0c;包括用…

【java】实现自定义注解校验——方法一

自定义注解校验的实现步骤&#xff1a; 1.创建注解类&#xff0c;编写校验注解&#xff0c;即类似NotEmpty注解 2.编写自定义校验的逻辑实体类&#xff0c;编写具体的校验逻辑。(这个类可以实现ConstraintValidator这个接口&#xff0c;让注解用来校验) 3.开启使用自定义注解进…

14.2 并发与竞争实验

一、原子操作实验 这节使用原子操作来实现对 LED 设备的互斥访问&#xff0c;也就是只有一个应用程序能使用 LED。 1.1 实验程序编写 因为是 12 章已经修改了设备树&#xff0c;所以这里暂时不用修改。 在 /linux/atk-mpl/Drivers 该目录下创建 7_atomic 子目录&#xff0c;并且…

大数据商城人流数据分析与可视化 - python 大数据分析 计算机竞赛

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于大数据的基站数据分析与可视化 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度…

pandas DataFrame转成字典

目录 dict形式list形式records形式split形式 dict形式 原数据 DateFrame.to_dict() pd.read_excel(r"D:\Users\admin\Desktop\授信额度使用.xlsx").to_dict()list形式 DateFrame.to_dict(‘list’) pd.read_excel(r"D:\Users\admin\Desktop\授信额度使用.x…

Python 爬虫基础

Python 爬虫基础 1.1 理论 在浏览器通过网页拼接【/robots.txt】来了解可爬取的网页路径范围 例如访问&#xff1a; https://www.csdn.net/robots.txt User-agent: * Disallow: /scripts Disallow: /public Disallow: /css/ Disallow: /images/ Disallow: /content/ Disallo…

企业为啥邀请媒体做专访?有哪些注意事项?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体胡老师。 一&#xff0c;企业邀请媒体做专访有以下几个原因&#xff1a; 1.提升品牌知名度&#xff1a;通过媒体的报道和专访&#xff0c;企业可以扩大品牌的曝光度&#xff0c;增加公众对企业的认…

oracle 数据库 LISTAGG详解

目录 简介: 效果展示&#xff1a; 举例&#xff1a; 测试表及数据&#xff1a; 简介: Oracle数据库的LISTAGG函数用于将多行数据合并为单个字符串&#xff0c;常见于分组操作&#xff0c;实现数据的垂直到水平的转换。 解决问题如&#xff1a;一个人有多个手机号&#xff0c…

系列一、Spring + SpringMVC + MyBatis整合

一、概述 整合 Spring、SpringMVC、MyBatis。 二、整合步骤 2.1、pom <dependencies><!-- 普通maven项目中使用Sl4j注解 --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1…

视频监控管理平台EasyCVR自动注销后,页面还存留播放窗口是什么原因?解决办法是什么?

视频监控TSINGSEE青犀视频平台EasyCVR能在复杂的网络环境中&#xff0c;将分散的各类视频资源进行统一汇聚、整合、集中管理&#xff0c;在视频监控播放上&#xff0c;TSINGSEE青犀视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放&#xff0c;可同时播放多路视频流&#…

2023.11.6 Spring 使用注解存储 Bean 对象

目录 前置工作 使用类注解 五大类注解 Controller&#xff08;控制器&#xff09; Service&#xff08;服务&#xff09; Repository&#xff08;仓库&#xff09; Component&#xff08;组件&#xff09; Configuration&#xff08;配置&#xff09; 使用方法注解 B…