牛客网刷题 | BC104 翻转金字塔图案

目前主要分为三个专栏,后续还会添加:

        专栏如下:                 C语言刷题解析       C语言系列文章       我的成长经历

感谢阅读!

初来乍到,如有错误请指出,感谢!


描述

KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的翻转金字塔图案。

输入描述:

多组输入,一个整数(2~20),表示翻转金字塔边的长度,即“*”的数量,也表示输出行数。

输出描述:

针对每行输入,输出用“*”组成的金字塔,每个“*”后面有一个空格。

示例1:


思路 :

首先要分两个步骤 控制每一行的打印

而每一行又由 空格+* 组成

先打印每一行的的空格

再打印每一行的 星号 把两个分开来

//(j = 0; j<i;j++)

//i为0的时候j从0开始 这里一次都不打印 i为1的时候j从0开始 这里打印一次

//i为2的时候j从0开始 这里打印两次 i为3的时候j从0开始 这里打印3次

//......

(j = 0; j<n-i; j++)

//第一行 i是0 5减0 等于0 第二行 i等于1 5减1等于4 打印四个*加空格

//第三行 i是2 5减2 等于三 打印三个*加空格

//......


  1. 读取输入:首先,需要读取用户输入的整数,这个整数决定了翻转金字塔最底层的星号数量。

  2. 循环控制:使用一个for循环来控制打印的行数,循环的次数等于输入的整数。

  3. 计算空格:在每一行中,需要首先打印一定数量的空格,以使星号右对齐并形成金字塔形状。空格的数量可以通过n - i - 1来计算,其中n是输入的整数,i是当前的行数(从0开始)。

  4. 打印星号:在打印完空格之后,使用另一个for循环来打印星号。内层循环的次数等于2*i + 1,这是因为除了第一行和最后一行外,每行的星号数量是奇数,并且随着行数的增加而增加。

  5. 换行:在每行的星号打印完毕后,使用printf("\n");打印一个换行符,以便开始新的一行。

  6. 循环结束:当for循环完成所有迭代后,整个翻转金字塔图案打印完毕。


代码 1 :

/*思路 : 首先要分两个步骤 控制每一行的打印
而每一行又由 空格+* 组成
先打印每一行的的空格
再打印每一行的 星号 把两个分开来 
//(j = 0; j<i;j++)
//i为0的时候j从0开始 这里一次都不打印 i为1的时候j从0开始 这里打印一次
//i为2的时候j从0开始 这里打印两次 i为3的时候j从0开始 这里打印3次
//......(j = 0; j<n-i; j++)
//第一行 i是0 5减0 等于0 第二行 i等于1 5减1等于4 打印四个*加空格
//第三行 i是2 5减2 等于三 打印三个*加空格
//...*/# include <stdio.h>
int main (){int n = 0;while(scanf("%d",&n)!=EOF){int i = 0;//每一行的打印 每打印一行退出依次循环 //先打印一行 打印空格for(i = 0; i<n; i++){int j = 0;//先打印每一行的空格 因为每一行都是由空格和星号组成的//i为0的时候j从0开始 这里一次都不打印 i为1的时候j从0开始 这里打印一次//i为2的时候j从0开始 这里打印两次 i为3的时候j从0开始 这里打印3次//......for(j = 0; j<i;j++){printf(" ");}//再打印每一行的星星 每一行都是有空格和星星组成//再打印*+空格//第一行 i是0 5减0 等于0 第二行 i等于1 5减1等于4 打印四个*加空格//第三行 i是2 5减2 等于三 打印三个*加空格//...for(j = 0; j<n-i; j++){printf("* ");}printf("\n");}}return 0;
}
------------------------------------------------------
#include <stdio.h> // 包含标准输入输出库int main() // 主函数的开始
{int n = 0; // 定义一个整型变量n,用于存储用户输入的翻转金字塔边长while(scanf("%d",&n)!=EOF) // 使用while循环来处理多组输入直到文件结束符EOF{int i = 0; // 定义一个整型变量i,用于控制外层循环,表示当前行数// 外层循环,控制每一行的打印for(i = 0; i < n; i++){int j = 0; // 定义一个整型变量j,用于控制内层循环// 内层循环1,先打印每一行前面的空格// 空格的数量随着行数的增加而减少for(j = 0; j < i; j++) // 循环i次,打印i个空格{printf(" "); // 打印一个空格}// 内层循环2,再打印每一行的星号// 星号的数量等于n-i,随着行数的增加而减少for(j = 0; j < n-i; j++) // 循环n-i次,打印n-i个星号和空格{printf("* "); // 打印一个星号和一个空格}printf("\n"); // 每行结束后打印换行符,以便开始新一行的打印}}return 0; // 主函数结束,返回0表示程序正常结束
}

程序使用while循环来处理多组输入,直到遇到EOF。在每次循环中,首先读取用户输入的整数n,这个整数表示翻转金字塔最底层的星号数量。

外层for循环控制行数,从0到n-1。

在每次迭代中,首先有一个内层循环用于打印空格,空格的数量等于当前行数i。接着,另一个内层循环用于打印星号和空格,星号的数量等于n-i

每完成一行的打印后,使用printf("\n")来换行,准备打印下一行。当所有行都打印完毕后,while循环结束,程序返回0,表示正常退出。

代码 2 :

#include <stdio.h>int main() {int n;while (scanf("%d", &n) != EOF) { // 读取输入直到EOFif (n < 2 || n > 20) break; // 输入验证,确保n在2到20之间// 外层循环控制行数for (int i = 0; i < n; i++) {// 打印空格for (int j = 0; j < n - i - 1; j++) {printf(" ");}// 打印星号for (int k = 0; k < 2 * i + 1; k++) {printf("*");}// 换行printf("\n");}}return 0; // 程序结束
}

 这段代码首先包含了stdio.h头文件,定义了主函数main,并在其中定义了一个整数变量n来存储用户输入的翻转金字塔最底层的星号数量。

然后,程序使用while循环来读取输入直到EOF,并验证输入是否在2到20之间。

外层for循环控制行数,内层两个for循环分别用来打印空格和星号。

每完成一行的打印后,程序使用printf("\n")来换行。当输入结束时,程序返回0,表示正常退出。

代码  3 :

#include <stdio.h> // 包含标准输入输出库int main() // 主函数的开始
{int a = 0; // 定义一个整型变量a,用于存储用户输入的翻转金字塔边长// 使用while循环来处理多组输入直到文件结束符EOFwhile ((scanf("%d", &a)) != EOF){int j = 0; // 定义一个整型变量j,用于控制每行开头的空格数,初始化为0int k = a; // 定义一个整型变量k,用于控制每行的星号数,初始化为a// for循环控制打印的行数,共打印a行for (int i = 0; i < a; i++){// 内层第一个for循环,打印每行开头的空格// 空格数从0开始,每行递增1for (int b = 0; b < j; b++){printf(" "); // 打印一个空格}// 内层第二个for循环,打印每行的星号// 星号数从a开始,每行递减1for (int c = 0; c < k; c++){printf("* "); // 打印一个星号和一个空格}printf("\n"); // 每行结束后打印换行符,以便开始新一行的打印j++; // 每行之后空格数增加1k--; // 每行之后星号数减少1}}return 0; // 主函数结束,返回0表示程序正常结束
}

程序使用while循环来处理多组输入,直到遇到EOF。

在每次循环中,首先读取用户输入的整数a,这个整数表示翻转金字塔最底层的星号数量。

外层for循环控制打印的行数,从0到a-1。

在每次迭代中,首先有一个内层循环用于打印空格,空格的数量由变量j控制,每行递增。接着,另一个内层循环用于打印星号和空格,星号的数量由变量k控制,每行递减。

每完成一行的打印后,使用printf("\n")来换行,准备打印下一行。

每行打印后,jk分别更新,以准备下一行的打印。当所有行都打印完毕后,while循环结束,程序返回0,表示正常退出。

  

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

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

相关文章

万字详解 MySQL MGR 高可用集群搭建

文章目录 1、MGR 前置介绍1.1、什么是 MGR1.2、MGR 优点1.3、MGR 缺点1.4、MGR 适用场景 2、MySQL MGR 搭建流程2.1、环境准备2.2、搭建流程2.2.1、配置系统环境2.2.2、安装 MySQL2.2.3、配置启动 MySQL2.2.4、修改密码、设置主从同步2.2.5、安装 MGR 插件 3、MySQL MGR 故障转…

智慧排水监测系统方案

智慧排水监测系统方案 智慧排水监测系统作为现代城市基础设施管理的重要组成部分&#xff0c;旨在通过先进的信息技术手段&#xff0c;实现对城市排水系统的全面、实时、高效的远程监控与管理。该系统整合了物联网技术、大数据分析、云计算平台与人工智能算法&#xff0c;不仅…

告别暗黄,唤醒肌肤

&#x1f3ad; 想象一下&#xff0c;你的皮肤是舞台上的主角&#xff0c;但最近它似乎有些“疲惫”和“黯淡”&#xff0c;仿佛失去了往日的星光✨。别急&#xff0c;今天&#xff0c;我要为你揭秘一个能让肌肤重新焕发光彩的“魔法”——胶原蛋白&#xff01;&#x1f3a9; &a…

docker查看容器目录挂载

查看命令 docker inspect --format{{ json .Mounts }} <container_id_or_name> | jq 示例 docker inspect --format{{ json .Mounts }} af656ae540af | jq输出

FreeRTOS笔记 - 二(正点原子)

一&#xff0c;任务创建和删除 具体的参数&#xff08;看视频&#xff09; 1&#xff0c;动态和静态创建的区别 动态: 任务的任务控制块以及任务的栈空间所需的内存&#xff0c;均由FreeRTOS从 FreeRTOS 管理的堆中分配。 静态: 任务的任务控制块以及任务的栈空间所需的内存&am…

vscode设置编辑器文件自动保存

步骤 1.打开vscode的设置 2.在搜索栏输入关键字“保存”&#xff1b; 在 Files: Auto Save 设置项&#xff0c;选择自动保存的模式

java使用资源过高排查

在生产环境中有可能出现某java程序使用资源特别严重&#xff0c;这就需要找到该java进程&#xff0c;然后通过进程去找到是哪个线程的问题&#xff0c;这里我们就是用pidstat工具来排查一下 安装pidstat工具 yum -y install sysstat 查看java服务的pid jps 通过pid查看线…

C# WinForm —— 25 ProgressBar 介绍与使用

1. 简介 用于显示某个操作的进度 2. 常用属性 属性解释(Name)控件ID&#xff0c;在代码里引用的时候会用到,一般以 pbar 开头ContextMenuStrip右键菜单Enabled控件是否可用ForeColor用于显示进度的颜色MarqueeAnimationSpeed进度条动画更新的速度&#xff0c;以毫秒为单位M…

CSAPP Lab08——Proxy Lab完成思路

蓝色的思念 突然演变成了阳光的夏天 空气中的温暖不会很遥远 ——被风吹过的夏天 完整代码见&#xff1a;CSAPP/proxylab-handout at main SnowLegend-star/CSAPP (github.com) Q&#xff1a;计算机网络中port的作用是什么&#xff1f; A&#xff1a;在计算机网络中&#xff…

qt中实现多语言功能

qt中实现多语言功能 原理&#xff1a; 其本质就是生成ts文件&#xff0c;然后使用Linguist软件手工翻译&#xff0c;再生成qm文件&#xff0c;最后在主程序的开始加载不同的qm文件&#xff0c;实现多语言。 步骤&#xff1a; 修改程序文件 在pro文件中加入说明 TRANSLATI…

Socket网络通讯入门(一)

提示&#xff1a;能力有限&#xff0c;不足以及错误之处还请指出&#xff01; 文章目录 前言一、 计算机网络 OSI、TCP/IP、五层协议 体系结构1.OSI七层模型每层的作用2.TCP/IP协议分成3.五层协议体系结构 二、Socket服务端和客户端 简单通信1.服务端代码2.客户端 总结 前言 简…

vs - 在win10中安装vs2013update5

文章目录 vs - 在win10中安装vs2013update5概述笔记直接安装vs2013-update5报错先安装vs2013原版安装 vs2013 update5测试备注END vs - 在win10中安装vs2013update5 概述 用VS2019写的程序&#xff0c;在早期windows(e.g. win7, win8.1)上安装时&#xff0c;需要UCRT。 UCRT是…

SpringBoot整合jasypt加密配置文件敏感信息

SpringBoot整合jasypt加密配置文件敏感信息 在项目中我们需要对配置文件的一些敏感信息进行加密处理&#xff0c;比如数据库账户密码&#xff0c;避免直接暴露出来&#xff0c;这种场景常常用于生产环境&#xff0c;我们不想让开发人员知道生产库的密码&#xff0c;有运维人员…

基础篇01——SQL的基本语法和分类

MySQL数据库安装与基本使用 安装教程参见&#xff1a;通过zip安装MySQL 通过命令行启动和停止MySQL服务命令 前提&#xff1a;安装MySQL成功之后 启动服务&#xff1a;net start mysql 停止服务&#xff1a;net stop mysql 通过命令行连接mysql 可以通过mysql的客户端命令行…

入手戴尔R720,通过iDRAC查看系统信息

想入手服务器很久了&#xff0c;一直担心功耗太高&#xff0c;今天狠心搞了一台戴尔服务器R720。 需求 开虚拟机&#xff0c;核心数要多 学习以下 Windows云桌面AD域控office online serverubuntu试验机 随便折腾不怕玩坏 最好两个网口以上 稳定 四个以上硬盘位 ‍ 为什么是…

在AutoDL上部署百川2大模型

在AutoDL上部署百川2大模型 AUTO DL相关 官网地址 选择容器实例 租用新实例 选择配置 我这里选择3090 , 硬盘尽量选择可以扩容的 , CUDA版本尽量高一点 选择镜像 先将机器关机 先扩容一下数据盘 50G就可以了 然后选择无卡模式开机 因为无卡模式下开机费用会变低 使用JupyterL…

1.3Java对象和类

Java作为一种面向对象语言。支持以下基本概念&#xff1a; 多态继承封装抽象类对象实例方法重载 本节我们重点研究对象和类的概念。 对象&#xff1a;对象是类的一个实例&#xff08;对象不是找个女朋友&#xff09;&#xff0c;有状态和行为。例如&#xff0c;一条狗是一个…

BrainGPT1,一个帮你b站点歌放视频的多模态多轮对话模型

BrainGPT1&#xff0c;一个帮你b站点歌放视频的多模态多轮对话模型 返回论文目录 项目地址 模型地址 作者&#xff1a;华东师范大学&#xff0c;计算机科学与技术学院&#xff0c;智能教育研究院的小怪兽会微笑。 介绍 BrainGPT1是一个工具调用多轮对话模型&#xff0c;与G…

免费实现网站HTTPS访问

HTTPS&#xff08;Hypertext Transfer Protocol Secure&#xff09;是一种基于SSL协议的HTTP安全协议&#xff0c;旨在为客户端&#xff08;浏览器&#xff09;与服务器之间的通信提供加密通道&#xff0c;确保数据在传输过程中的保密性、完整性和身份验证。与传统的HTTP相比&a…

【数据结构与算法(C 语言)】栈的基本操作函数(动图演示) 及 栈的实际应用之一:进制转换

目录 1. 前言2. 结构及基本操作函数&#xff1a;2.1 栈的结构类型 Stack2.2 初始化栈 InitStack2.3 销毁栈 DestroyStack2.4 清空栈 ClearStack2.5 判断栈是否为空 StackEmpty2.6 获取stack的长度 StackLength2.7 获取栈顶元素 GetTop2.8 入栈 Push2.9 出栈 Pop2.10 访问元素2.…