【C语言】-- X型图案

news2024/9/20 18:26:45

       今天刷了牛客网上的一道题,不难,但思路很重要,否则你就得写一长串代码,下面是要求。牛客网链接->X形图案。

下面是两组示例。

 

     通过观察示例,我们发现输入的数字是奇数时,图案最中间只有一个*,其余行均输出两个*。而若输入的数字为偶数时,图案最中间两行排列一样,且都是输出两个*。这是两种图案的区别。

思路:输入的数字等于输出的行数和列数,即使用两个for循环搞定,关键是图案每行都输出两个‘*’字符(除输入奇数时的最中间一行为一个‘*’)其余均用空格字符输出。其次,当分别输入5和6时:

     所以我们不妨设两个整型变量left,right刚开始让left指向第一列,right指向最后一列。当进入第二个for循环(即列循环)里面时 当 j == left || j == right  时输出*,循环完成后left++,right--。然后以此循环。就完成打印了。

left,right的好处:不用考虑输入的数字为奇数偶数时,最中间该如何输出。

          因为若输入奇数,输出最中间一行时left和right肯定是相等的,就会输出一个*,其余全用空格输出。

         若输入偶数,任意两行的left和right肯定是不相等的。那必然会输出两个*。

 核心代码如下:

        int left = 1;

        int right = a;// a为输入的行数

        for (int i = 1; i <= a; i++) {

            for (int j = 1; j <= a; j++) {

                if (j == left || j == right)

                    printf("*");

                else printf(" ");

            }

 完整代码:

#include<stdio.h>
int main() {

    int a = 0;
    while (scanf("%d", &a) == 1) {
        int left = 1;
        int right = a;
        for (int i = 1; i <= a; i++) {

            for (int j = 1; j <= a; j++) {
                if (j == left || j == right)
                    printf("*");
                else printf(" ");
            }
            printf("\n");
            left++;
            right--;
        }
    }
    return 0;
}

   

         下面还有一道例题思路和上面是一样的。牛客网链接->带空格直角三角形图案

 代码如下:

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

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

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

相关文章

什么是Ajax?Ajax如何发送请求(详)

本篇来讲关于Ajax的内容&#xff0c;当然还有小伙伴可能不知道该怎么读 "Ajax"&#xff0c;它读 "阿贾克斯" &#xff0c;当然了读法可能因人而异&#xff0c;下面来进入正题&#xff0c;先来了解一下什么是Ajax&#xff1f; Ajax 是什么&#xff1f; Ajax…

魔法与现实-如何使用GPT帮我改一个万行vue代码中的BUG

开篇 传说在人类诞生之初是和魔法共存的。随时时间的流失,人们逐步开始淡忘了魔法。也有传说魔法是亚瑟王于“剑栏“一战(Battle of Camlann)后梅林永远封存了魔法使其不被心术不正者所使用。不管哪种说法,随着时间的流失,人类在飞速进步。从水利磨坊到蒸汽机的发明、再到…

Latex中表格Table环境和Tabular环境

目录 一、Table和Tabular的区别 二、一个简单的Table环境示例&#xff1a; 三、Latex的“自动换行”功能 四、Latex多行和多列 五、使用tablesgenerator快速将excel表格转换成tex代码 六、设置表格的宽度与页面宽度一致 说明:一至四内容来自Latex中使用Table&#xff08;表…

Scala入门【运算符和流程控制】

运算符 在 Scala 中其实是没有运算符的&#xff0c;所有运算符都是方法。我们只是省去了 .方法名() 中的点 . 和括号 () 。 调用对象的方法时&#xff0c;点 . 可以省略&#xff1b;如果函数参数只有一个&#xff0c;或者没有参数&#xff0c;括号()可以省略。 //num1 n…

Unity解决:GIS(GPS的经纬度坐标)定位系统坐标转unity坐标(世界坐标)

目录 一、前言 二、功能实现 三、测试 四、备注 如果要实现该效果的demo&#xff0c;请联系作者 一、前言 最近项目中用到了第三方的定位系统&#xff0c;有的是使用GPS定位、有的是使用UWB定位。第三方的定位系统把他们的定位信息通过网络发送给Unity&#xff0c;在Unity…

项目集活动—项目集定义阶段活动

项目集活动是为支持项目集而开展的任务和工作&#xff0c;贯穿整个项目集生命周期。 项目集活动包括&#xff1a; 项目集定义阶段活动 项目集交付阶段活动项目集收尾阶段活动 鉴于项目集的范围和复杂性&#xff0c;在整个项目集生命周期中&#xff0c;将执行许多项目集支持活…

走向CV的通用人工智能:从GPT和大型语言模型中汲取的经验教训 (上)

点击蓝字 关注我们 关注并星标 从此不迷路 计算机视觉研究院 公众号ID&#xff5c;计算机视觉研究院 学习群&#xff5c;扫码在主页获取加入方式 论文地址&#xff1a;https://arxiv.org/pdf/2306.08641.pdf 计算机视觉研究院专栏 Column of Computer Vision Institute 人工智能…

交织技术详解

本专栏包含信息论与编码的核心知识&#xff0c;按知识点组织&#xff0c;可作为教学或学习的参考。markdown版本已归档至【Github仓库&#xff1a;https://github.com/timerring/information-theory 】或者公众号【AIShareLab】回复 信息论 获取。 文章目录 交织技术1.突发错误…

Linux系统:ulimit命令

目录 一、理论 1.ulimit命令 二、实验 1.打开的最大文件描述符的数量为65535 一、理论 1.ulimit命令 &#xff08;1&#xff09;概念 ulimit是一个计算机命令&#xff0c;用于shell启动进程所占用的资源&#xff0c;可用于修改系统资源限制&#xff0c;限制每个用户可使用…

资源有限的大型语言模型的全参数微调

文章目录 摘要1、简介2、相关工作3、方法3.1、重新思考optimizer的功能3.1.1、使用SGD3.1.2、隐式BatchSize 3.2、LOMO:低内存优化3.3、使用LOMO稳定训练3.3.1、梯度归一化和裁剪的替代方法3.3.2、缓解精度下降 4、实验4.1、内存配置4.2、吞吐量4.3、下游性能4.3.1、主要结果4.…

复杂的HANASQL 多行并入一行

点击蓝字 关注我们 一 前言 基于HANA的内存数据库的强大性能, SAP建议把业务逻辑下沉到HANA中计算.以便减去应用服务器的负担,让程序性能更好一些. SAP本身的一些复杂的业务逻辑比如MRP运算(MD01)也有了新的事务 MD01N (MRP LIVE) 报表类的数据分析程序尤其适用. 动态报表强化了…

PromptBench:大型语言模型的对抗性基准测试

PromptBench是微软研究人员设计的一个用于测量大型语言模型(llm)对对抗性提示鲁棒性的基准测试。这个的工具是理解LLM的重要一步&#xff0c;随着这些模型在各种应用中越来越普遍&#xff0c;这个主题也变得越来越重要。 研究及其方法论 PromptBench采用多种对抗性文本攻击&am…

阿里云服务器的存储容量和性能如何?是否支持多种存储类型?

阿里云服务器的存储容量和性能如何&#xff1f;是否支持多种存储类型&#xff1f;   本文由阿里云代理商[聚搜云]撰写   阿里云服务器作为业界领先的云计算服务提供商&#xff0c;其存储容量和性能一直受到广泛关注。本文将为您介绍阿里云服务器的存储容量、性能以及支持的…

《斯坦福数据挖掘教程·第三版》读书笔记(英文版)Chapter 12 Large-Scale Machine Learning

来源&#xff1a;《斯坦福数据挖掘教程第三版》对应的公开英文书和PPT Chapter 12 Large-Scale Machine Learning Algorithms called “machine learning” not only summarize our data; they are perceived as learning a model or classifier from the data, and thus dis…

Spring Boot 如何使用 @RequestParam 进行数据校验

Spring Boot 如何使用 RequestParam 进行数据校验 在 Web 应用程序中&#xff0c;用户提交的数据通常以请求参数的形式传递。在 Spring Boot 中&#xff0c;可以使用 RequestParam 注解来获取请求参数。但是&#xff0c;如何确保这些请求参数的有效性呢&#xff1f;在本文中&a…

Webots介绍

Webots介绍 1 介绍1.1 概述1.2 应用1.3 入门要求1.4 技术支持1.5 仿真步骤世界&#xff08;webots定义&#xff09;控制器超级控制器 1.6 平台能力三维建模能力物理引擎外设支持 2 软件使用启动webots用户界面文件菜单编辑菜单查看菜单模拟菜单构建菜单叠加菜单工具菜单帮助菜单…

ROS:文件系统以及命令

目录 一、ROS文件系统二、package.xml三、CMakelists.txt四、ROS文件系统命令4.1增4.2删4.3查4.4改4.5roscode4.6rosrun4.7roslaunch 一、ROS文件系统 ROS文件系统级指的是在硬盘上ROS源代码的组织形式&#xff0c;其结构大致如下图所示&#xff1a; WorkSpace --- 自定义的…

在DailyMart中是如何支持多种登录方式的?

欢迎回来&#xff0c;我是飘渺。今天继续更新DDD&微服务的系列文章。 1. 理解DDD中的领域模型职责 在我们开始今天的主题之前&#xff0c;让我们先回答一些读者的疑问。 在上一篇文章 [[DailyMart05&#xff1a;通过用户注册呈现一个完整的DDD开发流程]] 发布以后&#xf…

团体程序设计天梯赛-练习集L1篇①

&#x1f680;欢迎来到本文&#x1f680; &#x1f349;个人简介&#xff1a;Hello大家好呀&#xff0c;我是陈童学&#xff0c;一个与你一样正在慢慢前行的普通人。 &#x1f3c0;个人主页&#xff1a;陈童学哦CSDN &#x1f4a1;所属专栏&#xff1a;PTA &#x1f381;希望各…

SpringBoot多线程异步任务:ThreadPoolTaskExecutor + CompletableFuture

SpringBoot多线程异步任务 需求 在 SpringBoot 项目中&#xff0c;一个任务比较复杂&#xff0c;执行时间比较长&#xff0c;需要采用 多线程异步 的方式执行&#xff0c;从而缩短任务执行时间。 多线程异步 将任务拆分成多个独立的子任务&#xff0c;每个子任务在独立子线…