当前位置: 首页 > news >正文

#C语言——刷题攻略:牛客编程入门训练(十二):攻克 循环控制(四)、循环输出图形(一),轻松拿捏!

🌟菜鸟主页:@晨非辰的主页

👀学习专栏:《C语言刷题合集》

💪学习阶段:C语言方向初学者

名言欣赏:"代码行数决定你的下限,算法思维决定你的上限。"

前言:在学习编程语言的同时,千万别忘了刷刷题来巩固一下学到的知识,对于牛客网_编程入门系列,小子会持续更新分享刷题过程,其中包括一些基础板块的题目,本次将呈现7道题。

~~注意部分标题括号内代表对题目涉及到的知识进行说明!


目录

1.  BC95 小乐乐与进制转换

2.  BC97 回文对称数

3.  BC99 正方形图案

4.  BC100 直角三角形图案

5.  BC101 翻转直角三角形图案

6. BC102 带空格直角三角形图案

7.  BC102 带空格直角三角形图案


1.  BC95 小乐乐与进制转换

链接:牛客网_BC95 小乐乐与进制转换_简单

#include <stdio.h>
int main()
{long a = 0;long i = 1;long b = 0;long sum = 0;scanf("%ld", &a);do{b = a % 6;sum += b * i;i *= 10;a /= 6;} while (a);printf("%ld", sum);return 0;
}

思路——

--本题要求十进制转六进制,思路与学过的二进制、十进制、十六进制之间的转换是相同的;整数%6取余倒着排序,再整数 / 6,在进行重复操作;注意点就是,类型的选择,当测试数值较大时,可能会超过 int 范围,建议使用long。


2.  BC97 回文对称数

链接:牛客网_BC97 回文对称数_简单

#include <stdio.h>
int main() 
{int a = 0;scanf("%d", &a);int i = 0;int j = 0;for(i = 1; i <= a; i++){   j = i;int sum = 0;//用于取余后的数值重建do {sum = sum * 10 + j % 10; j /= 10;}while (j>0);if(sum == i){printf("%d\n", sum);}}return 0;
}

思路——

--本题关键点在于如何对取余操作后的数值重建,循环中,将获得的最低位逐次*10移到最高位,最后在进行数值比较即可。


3.  BC99 正方形图案

链接:牛客网_BC99 正方形图案_简单

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

思路——

--本题思路利用for循环的嵌套设置行、列的输出方式;因为图形为标准的正方形,当打印完一行,换行到下一行继续输出。


4.  BC100 直角三角形图案

链接:牛客网_BC100 直角三角形图案_简单

#include <stdio.h>
int main() 
{int a;while (scanf("%d", &a) != EOF) { //定义行数的变换int k = 1;//每行个数的定义for(int i = 1; i <= a; i++){//定义每行的输出int j = 0;for(j = 1; j <= k; j++){printf("* ");}printf("\n");k++;   }}return 0;
}

思路——

--本题思路与上一题正方形的输出基本相同,只不过是每行输出的个数需要额外定义;输出完一行,先换行,再限制个数变量k+1,即可完成。


5.  BC101 翻转直角三角形图案

链接:牛客网_BC101 翻转直角三角形图案_简单

#include <stdio.h>
int main() 
{int a;while (scanf("%d", &a) != EOF) { //定义行数的变换int k = a;//每行个数的定义for(int i = 1; i <= a; i++){//定义每行的输出int j = 0;for(j = 1; j <= k; j++){printf("* ");}printf("\n");k--;   }}return 0;
}

思路——

--本题是上一题的稍微改变,二者代码大致相同,只需要将个数限制变量开始时等于行数,再输出完一行后,换行再个数变量-1,即可完成。


6. BC102 带空格直角三角形图案

链接·:牛客网_BC102 带空格直角三角形图案_简单

#include <stdio.h>int main() 
{int a;while (scanf("%d", &a) != EOF) { int k = a;//每行个数的定义//定义行数的变换for(int i = 1; i <= a; i++){//定义每行的输出int j = 0;for(j = 1; j <= k; j++){printf("* ");}printf("\n");k--;   }}return 0;
}

思路——

--本题大致结构就显而易见了,也就是上一题稍微改动改动;在最初将每行的个数变为最大数值,后面的内层循环,每输出完一行,个数k--,换行完成。


7.  BC102 带空格直角三角形图案

链接:牛客网_BC102 带空格直角三角形图案_简单

int main()
{int a;while (scanf("%d", &a) != EOF){int j = a;int k = a;//循环行变换for (int i = 1; i <= a; i++){//进行单行空格的输出for (int i = 1; i <= (k - 1); i++){printf("  ");}//进行单行*输出for (int i = 1; i <= j - (k - 1); i++){printf("* ");}printf("\n");k--;}}return 0;
}

思路——

--本题思路就需要有一点点想法了,外层循环好说;对于内层循环,首先就要先输出空格,在输出 ' * ' ;为了循环控制 ' * ' 的数量,就要想办法让变量从最小值逐次到最大值——>j - (k - 1)。


刷题系列回顾:

#C语言——刷题攻略:牛客编程入门训练(十):攻克 循环控制(二),轻松拿捏!

#C语言——刷题攻略:牛客编程入门训练(十一):攻克 循环控制(三),轻松拿捏!

结语:本篇文章就到此结束了,本文主要是练习部分循环控制以及输出图形题目,后续的题目练习难度会慢慢上来,但总体来说不会太难,喜欢的朋友们,一起来学习吧!欢迎三连~ 


文章转载自:

http://FXp3cshn.Ldzxf.cn
http://pjGL0Usu.Ldzxf.cn
http://sZAHVKal.Ldzxf.cn
http://cy6pAXZu.Ldzxf.cn
http://pgv27e3f.Ldzxf.cn
http://KGJE8epV.Ldzxf.cn
http://8ohIPaa7.Ldzxf.cn
http://ziwHupvK.Ldzxf.cn
http://GNJR864u.Ldzxf.cn
http://bUl2pPQS.Ldzxf.cn
http://YzY5IgK3.Ldzxf.cn
http://NJPr1KB1.Ldzxf.cn
http://QsIJvRl5.Ldzxf.cn
http://LlmZdOjN.Ldzxf.cn
http://0eRwFB45.Ldzxf.cn
http://DtZDdxeC.Ldzxf.cn
http://cpxSbAiJ.Ldzxf.cn
http://duNYJLGC.Ldzxf.cn
http://h7rQkuwD.Ldzxf.cn
http://m5uhGYbQ.Ldzxf.cn
http://DmktrAzs.Ldzxf.cn
http://23iu5EHJ.Ldzxf.cn
http://wXtTumDl.Ldzxf.cn
http://nmTdytE8.Ldzxf.cn
http://cbHbkx4P.Ldzxf.cn
http://8cM0QN7D.Ldzxf.cn
http://vLeraBp0.Ldzxf.cn
http://bOR0xaHO.Ldzxf.cn
http://nhHTpSi7.Ldzxf.cn
http://Qd1KfcTV.Ldzxf.cn
http://www.dtcms.com/a/379672.html

相关文章:

  • 面试经典150题[029]:三数之和(LeetCode 15)
  • Ubuntu 24.04 搭建k8s 1.33.4
  • 从数字后端角度谈谈occ电路(一)
  • Hadoop简介:分布式系统的基石与核心架构详解
  • [数据结构] 优先级队列(堆)
  • 计算机毕业设计 基于深度学习的酒店评论文本情感分析研究 Python毕业设计项目 Hadoop毕业设计选题 机器学习选题【附源码+文档报告+安装调试】
  • 数据结构 Java对象的比较
  • EDID 数据结构解析与编辑工具:校验和计算、厂商/设备名编解码、物理地址读写、颜色与时序信息提取
  • 龙蜥8.10中spark各种集群及单机模式的搭建spark3.5.6(基于hadoop3.3.6集群)
  • Hadoop MapOutputBuffer:Map高性能核心揭秘
  • Kubernetes 弹性伸缩:深入讲解 HPA 和 VPA
  • 代理服务器是什么?怎么选择?
  • java Redisson 实现限流每秒/分钟/小时限制N个请求 -V2.0
  • 高并发、低延迟全球直播系统架构
  • zookeeper是啥
  • 短波红外相机在机器视觉检测方向的应用
  • 阿里云国际代理:如何利用RDS构建高可用、可扩展的数据库架构
  • 【Python】通俗理解反向传播
  • RFID技术在半导体电子货架上的应用方案
  • Windows 安装 Redis 教程
  • CMake 全流程开发实战:从零开始掌握C++项目构建、测试到一键分发的完整解决方案​
  • 如果数据量小但是点击后需要获取的是最新的定位信息,这种时候采取什么策略最优?
  • 使用 Pyinstaller 打包 PPOCRLabel
  • 科技信息差(9.12)
  • 是德科技 | 关于AI 数据中心时代的光通信的精选问答
  • 深入剖析 Elasticsearch (ES) 的近实时搜索原理
  • Qt5 | TCP服务器开源模板工程实战
  • 飞鹤财报“新解”:科技筑牢护城河,寒冬凸显龙头“硬核力”
  • 第6.2节 Android Agent开发<一>
  • 【 C/C++ 算法】入门动态规划-----一维动态规划基础(以练代学式)