牛客网刷题 | BC101 翻转直角三角形图案

news2024/12/30 3:56:44

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

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

感谢阅读!

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


描述

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

输入描述:

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

输出描述:

针对每行输入,输出用“*”组成的对应长度的翻转直角三角形,每个“*”后面有一个空格。
 


思路 :

先打印一行 然后依次减少

橙色框框里面的一行代码我们都很容易能想出来,但主要的就是第二层for循环不太好想出来

拆解一下:

首先我先输入的是 3第一层for条件成立盾环:第二层for把i的值赋给j这里的意思就是跟随外层的for循环盾环:的i变化而化,因为i++是一直在进行++操作的

 

  1. 输入处理:程序需要能够接收多组输入,每组输入是一个整数(范围是2到20),表示翻转直角三角形直角边的长度,即每行输出的“*”的数量。

  2. 循环结构:我们需要使用循环来打印每一行的星号。循环的次数由输入的整数决定。

  3. 打印星号:在每次循环中,我们需要打印相应数量的星号,每个星号后面跟着一个空格。

  4. 递减星号数量:每一行的星号数量应该比上一行少一个,直到最后一行只有一个星号。

  5. 输出格式:确保每行的星号后面都有空格,并且星号的数量与输入的整数一致。


代码 1 :

# include <stdio.h>
int main ()

{
    int n = 0;
    while(scanf("%d",&n)!=EOF)
{
     for(int i = 0; i < n; i++)//每一列
    {
        for(int j = i;j<n;j++)
        {
            printf("* ");
        }
        printf("\n");
    }
}
   
    return 0;
}

#include <stdio.h> // 包含标准输入输出库,用于进行输入输出操作。

int main() // 定义主函数,程序执行的入口点。
{
    int n = 0; // 定义一个整型变量n,并初始化为0。这个变量用来存储用户输入的三角形的边长。

    // 使用while循环来处理多组输入,直到输入结束(EOF代表文件结束,这里用来表示输入结束)。
    while(scanf("%d",&n)!=EOF)
    {
        // 外层for循环,控制列数,从0开始,直到用户输入的n-1。
        for(int i = 0; i < n; i++)
        {
            // 内层for循环,控制每行打印的星号数量。
            // 循环变量j从i开始,直到n-1,这样每行打印的星号数量逐渐增加。
            for(int j = i; j < n; j++)
            {
                printf("* "); // 打印一个星号和一个空格。
            }
            printf("\n"); // 内层循环结束后,打印一个换行符,准备打印下一行。
        }
    }
   
    return 0; // 程序正常结束,返回0。
}

这段代码实现了一个简单的控制台程序,它可以接收用户输入的整数(代表三角形的边长),并打印出一个由星号组成的直角三角形图案。

程序使用while循环来处理多组输入,直到用户输入EOF(通常是通过在命令行中输入Ctrl+D(Linux/Mac)或Ctrl+Z(Windows)来发送EOF信号)。

每组输入后,程序会打印出相应大小的三角形图案。 

代码 2 :

#include<stdio.h>
int main()
{
    int a;
    while(scanf("%d",&a)!=EOF)
    {
        for(int i = a;i>0;i--)
        {
            for(int j = i;j>0;j--)
                printf("* ");
            printf("\n");
        }
    }
    return 0;
}

#include<stdio.h> // 引入标准输入输出库stdio.h,它提供输入输出功能。

int main() // 定义主函数main,程序从这里开始执行。
{
    int a; // 定义一个整型变量a,用于存储用户输入的三角形的边长。

    // 使用while循环来处理多组输入,直到输入结束(EOF代表文件结束标志)。
    while(scanf("%d",&a)!=EOF) 
    {
        // 外层for循环,从用户输入的边长a开始递减,直到递减到1。
        for(int i = a; i > 0; i--) 
        {
            // 内层for循环,从当前行的星号数量i开始递减,直到递减到1。
            for(int j = i; j > 0; j--) 
            {
                printf("* "); // 打印一个星号和一个空格,形成翻转直角三角形的每一行。
            }
            printf("\n"); // 每行打印完成后,打印一个换行符,移动到下一行的开始位置。
        }
    }
    return 0; // 程序正常结束,返回0表示成功。
}

 扩展:

#include <stdio.h> // 包含标准输入输出库

int main() {
    int n; // 定义一个整型变量n来存储用户输入的行数

    // 读取用户输入的行数
    scanf("%d", &n);

    // 使用for循环来控制行数
    for(int i = n; i > 0; i--) {
        // 内层循环,用于在每一行打印星号
        for(int j = 0; j < i; j++) {
            printf("* "); // 打印一个星号和一个空格
        }
        printf("\n"); // 完成一行的打印后,换到下一行
    }

    return 0; // 程序正常结束
}

现在,让我们逐步分析这段代码:

  1. #include <stdio.h>:这一行是预处理指令,它告诉编译器在实际编译之前包含标准输入输出库。这个库提供了scanfprintf等函数,允许程序执行输入和输出操作。

  2. int main() { ... }:这是C语言程序的主函数,程序的执行从这里开始。

  3. int n;:在main函数内部,我们声明了一个整型变量n,用来存储用户输入的翻转直角三角形的边长(即星号的数量)。

  4. scanf("%d", &n);:这行代码使用scanf函数从用户那里读取一个整数输入,并将其存储在变量n中。%d是格式字符串,指定了期望输入的类型是整数。&n是变量n的地址,scanf需要这个地址来知道在哪里存储读取的数据。

  5. for(int i = n; i > 0; i--) { ... }:这是一个for循环,它控制打印行数。循环的初始条件是int i = n,这意味着i的初始值是用户输入的行数。循环继续进行,只要i大于0。每次循环结束时,i--i的值减少1,这导致每行打印的星号数量逐渐减少。

  6. for(int j = 0; j < i; j++) { ... }:这是嵌套在上一个for循环内的第二个for循环,用于控制每行打印的星号数量。循环从j = 0开始,只要j小于i就继续进行。每次循环,j的值增加1。

  7. printf("* ");:在内层循环内部,这行代码打印一个星号和一个空格。由于内层循环每次迭代都会执行一次,所以它会打印出当前行应有的星号数量。

  8. printf("\n");:在内层循环结束后,这行代码打印一个换行符,将打印位置移动到下一行的开始处。

  9. return 0;:程序执行完所有的循环后,main函数返回0,表示程序正常结束。

  

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

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

相关文章

【动态规划】速解简单多状态类问题

目录 17.16 按摩师 题⽬描述&#xff1a; 解法&#xff08;动态规划&#xff09;&#xff1a; 1. 状态表⽰&#xff1a; 2. 状态转移⽅程&#xff1a; 3. 初始化&#xff1a; 4. 填表顺序 5. 返回值 代码 总结&#xff1a; 213.打家劫舍II&#xff08;medium&#x…

实践部署 浦语·灵笔2 模型,写作图文并茂的文章

1 初步介绍 XComposer2 相关知识 浦语灵笔2 是基于 书生浦语2 大语言模型研发的突破性的图文多模态大模型&#xff0c;具有非凡的图文写作和图像理解能力&#xff0c;在多种应用场景表现出色&#xff0c;总结起来其具有&#xff1a; 自由指令输入的图文写作能力&#xff1a; 浦…

解读makefile中的延迟变量与即时变量

在 Makefile 中&#xff0c;有两种类型的变量&#xff1a;即时变量&#xff08;immediate variable&#xff09;和延迟变量&#xff08;deferred variable&#xff09;。 它们在 Makefile 的执行过程中具有不同的特性和行为。 即时变量&#xff08;Immediate Variable&#x…

adb 连接机顶盒命令

抓机顶盒日志的方法&#xff0c;使用此命令进行抓日志&#xff0c;个别无法抓日志的盒子可以使用此方法 1、安卓9.0版本查询命令 ps -ef |grep com.cm.webos.iptv 2、安卓4.4版本查询命令 ps |grep com.cm.webos.iptv 3、查询顺序&#xff1a;首先进入shell下进行操作 adb she…

php 连接sqlserver步骤

1.首先要确定使用的是sqlserver的哪个版本&#xff0c;比如sqlserver2012 2.确定服务器是64位还是32位的 3.确认一下使用php的哪个版本&#xff0c;比如php7.1 SQL Server 的 Microsoft PHP 驱动程序 Microsoft Drivers for PHP 支持矩阵 - PHP drivers for SQL Server | Mi…

基于遗传优化的货柜货物摆放优化问题求解matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于遗传优化的货柜货物摆放优化问题求解matlab仿真。在一个货架上&#xff0c;初始状态下&#xff0c;随机将货物放在货柜上&#xff0c;优化之后&#xff0c;整…

javaIO流知识点概况

一、前言&#xff1a; 1.1.流的概念: java将输入与输出比喻为"流"&#xff0c;英文:Stream. 就像生活中的"电流","水流"一样,它是以同一个方向顺序移动的过程.只不过这里流动的是字节(2进制数据).所以在IO中有输入流和输出流之分,我们理解他们…

GO语言 gin框架 简述

原文地址 基本路由 Go语言中文文档 一、简介 Gin是一个golang的轻量级web框架&#xff0c;性能不错&#xff0c;API友好。 Gin支持Restful风格的API&#xff0c;可以直接从URL路径上接收api参数或者URL参数&#xff0c;也可是使用json或者表单 数据绑定的方式接收参数。 Gin响…

152.找出峰值(力扣)

代码解决 class Solution { public:// 函数用于找到山峰元素的索引vector<int> findPeaks(vector<int>& mountain) {vector<int> result; // 用于存储山峰元素的索引// 遍历数组&#xff0c;从第二个元素到倒数第二个元素for(int i 1; i 1 < mount…

C++ | Leetcode C++题解之第117题填充每个节点的下一个右侧节点指针II

题目&#xff1a; 题解&#xff1a; class Solution { public:void handle(Node* &last, Node* &p, Node* &nextStart) {if (last) {last->next p;} if (!nextStart) {nextStart p;}last p;}Node* connect(Node* root) {if (!root) {return nullptr;}Node *…

数据结构——二叉树的基本应用

在此之前我们已经初步了解了二叉树&#xff0c;在介绍堆的基本应用时&#xff0c;我们已经具体介绍了完全二叉树的基本应用&#xff0c;本章我们介绍二叉树的基本应用&#xff0c;这个不止指的是完全二叉树&#xff0c;而是指泛型的二叉树。 二叉树的基本应用&#xff0c;由于…

NDIS协议驱动(三)

协议驱动程序源自发送请求并处理基础驱动程序的接收指示。 在单个函数调用中&#xff0c;NDIS 协议驱动程序可以在每个 NET_BUFFER_LIST 结构上发送具有多个 NET_BUFFER 结构的多个NET_BUFFER_LIST结构。 在接收路径中&#xff0c;协议驱动程序可以接收NET_BUFFER_LIST结构的列…

宝塔部署Java+Vue前后端分离项目

1. 服务器 服务器选择Linux的CentOS7的版本 2. 宝塔Linux面板 2.1 百度搜索宝塔 2.2 进去之后点击立即免费安装 2.3 选择Linux在线安装&#xff0c;输入服务器信息进行安装(也可以选择其他方式) 安装完成之后会弹一个宝塔的应用面板&#xff0c;并附带有登录名称和密码&…

Hugging face win使用教程(二)

1. 将环境迁移到win&#xff0c;可以直接下载修改好的cuda环境https://download.csdn.net/download/liangjiubujiu/89368302?spm1001.2014.3001.5503 2. 修改hugging face的缓存路径 3. 重启pycharm 4. 编写测试代码&#xff0c;注意可能由于网络链接问题&#xff0c;需要关…

OSINT 与心理学:通过开源情报进行剖析和行为分析

在不断发展的心理学领域&#xff0c;人们越来越认识到通过应用开源情报 (OSINT) 方法取得进步的潜力。OSINT 主要以其在安全和情报领域的应用而闻名&#xff0c;并且越来越多地展示其在心理分析和行为分析方面的潜力。本文探讨了 OSINT 和心理学的迷人交叉点&#xff0c;研究如…

基于BP神经网络和小波变换特征提取的烟草香型分类算法matlab仿真,分为浓香型,清香型和中间香型

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ...................................................................................... …

AURIX TC3xx单片机介绍-启动过程介绍3

如下的内容是英文为主,对于TC3xx芯片启动原理不清楚的,可以给我留言,我来解答你们的问题! 3.2.1 Reset类型识别 Reset类型的识别是用来判断上次的复位是Application Reset还是System Reset还是CPU0 Reset。基于复位的原因,启动软件会运行不同的分支逻辑。复位原因可以通…

每日两题 / 131. 分割回文串 42. 接雨水(LeetCode热题100)

131. 分割回文串 - 力扣&#xff08;LeetCode&#xff09; 数据量较小&#xff0c;考虑直接暴力&#xff0c;每次dfs&#xff1a;以bg作为左区间&#xff0c;往右遍历&#xff0c;找到一段回文串区间后&#xff0c;将回文串插入vector<string>&#xff0c;并以下一个下标…

【最优化方法】实验一 熟悉MATLAB基本功能

实验一  熟悉MATLAB基本功能 实验的目的和要求&#xff1a;在本次实验中&#xff0c;通过亲临使用MATLAB&#xff0c;对该软件做一全面了解并掌握重点内容。 实验内容&#xff1a; &#xff11;、全面了解MATLAB系统 &#xff12;、实验常用工具的具体操作和功能 学习建…

PHP:phpmyadmin 将查询数据导出csv

1、输入你的SQL查询出结果 2、查出数据以后拖到最下方【导出】 3、导出CSV