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

蓝桥杯练习0327

一、特殊值结束测试数据

题目一:字符统计

<!-- 这是一张图片,ocr 内容为: -->

题目解析:
1、输入字符串,两种方式:

getchar() 逐个输入

getline() 整体输入

2、以‘?’结尾:

getchar(),判断最后一个字符是否为?即可

getline(), 通过pop_back()函数去除结尾的?,只计算前面的内容

3、分别统计字母、数字和其他字符的个数

一般我们按照ch >='0' && ch <= '9' 这种方式来进行判断

还可以使用库函数<cctype>来判断:

islower 是否为小写字母

isupper 是否为大写字母

isalpha 是否为字母

isdigit 是否为数字

#include<iostream> using namespace std; ​ //定义全局变量 int Letters; int Digits; int Others; int ch=0; ​ //使用getchar(),逐个字符读取,然后统计 int main() { while((ch=getchar()) != '?') { //方法一:传统判断方式 if((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) Letters++; else if(ch >= '0' && ch <= '9') Digits++; else Others++; } ​ //输出三行,每行包含一个整数,依次是字母个数,数字个数,其他符号个数 cout << "Letters=" << Letters << endl; cout << "Digits=" << Digits << endl; cout << "Others=" << Others << endl; return 0; } //方法二:利用库函数<cctype> if(islower(ch) || isupper(ch)) Letters++; else if(isdigit(ch)) Digits++; else Others++; if(isalpha(ch)) Letters++;

2.利用getline()一次性读取完整个字符串再来统计

#include<iostream> #include<cctype> #include<string> using namespace std; ​ int Letters; int Digits; int Others; int ch=0; ​ int main() { string s; //输入字符串 getline(cin,s); //尾部删除一个字符,去掉?,相当于以?结束 s.pop_back(); ​ //利用范围for循环解决这一问题 for(auto ch:s) { if(isalpha(ch)) Letters++; else if(isdigit(ch)) Digits++; else Others++; } cout << "Letters=" << Letters << endl; cout << "Digits=" << Digits << endl; cout << "Others=" << Others << endl; return 0; }

题目二:多组数据测试a+b

<!-- 这是一张图片,ocr 内容为: -->

#include<iostream> using namespace std; ​ int a = 0; int b = 0; ​ int main() { while(cin >> a >> b,a || b) { cout << a+b << endl; } return 0; }

二、含空格的输入技巧

题目三:统计数字字符

<!-- 这是一张图片,ocr 内容为: -->

#include<iostream> #include<string> using namespace std; ​ int main() { string s; int con = 0; //方法一:利用getline(),读取整个字符,再使用范围for和isdigit()统计数字字符出现的个数 getline(cin,s); for(auto e:s) { if(isdigit(e)) con++; } cout << con << endl; return 0; }
#include<iostream> #include<string> #include<cctype> using namespace std; ​ int main() { string s; int con = 0; //方法二:逐个字符读取cin //遇到空格就停止,在计算时要手动按Ctrl+Z停止 while(cin >> s) { for(auto e:s) { if(isdigit(e)) con++; } } cout << con << endl; return 0; }

<!-- 这是一张图片,ocr 内容为: -->

四、数字的特殊处理方式

当我们程序运⾏的时候,在控制台输⼊ 列,程序会根据代码中的数据类型,可能将 123 的时候,这时的 123 是三个字符, 123 解析成整型,也可能将 123 是⼀个字符序 123 解析成字符串。

题目四:小乐乐该数字

题目解析:
根据上述描述我们有两种解题思路:
一、当成一个整形来做

1.获取末尾数字 :%10

2.去除末尾数字: /10

3.判断奇偶: %2

4.输出为整形:pow(10,i)

二、当成一个字符串来做

如果把数字当成字符串来做,那么在判断奇偶时我们就用到了ASCII码值如下,我们可以发现对应%2也可以得到相应结果,那么我们就通过数组来赋值,最终我们得到的是字符串,如果要以整形输出我们就需要使用stoi函数

<!-- 这是一张图片,ocr 内容为: -->

这里使用两种方法来解答这道题一个是利用整形,二是将其视作一个字符串来用

1.把数字视作整形,这里我们用到了获取,去除每一位数字的方法(%10 ,/10).以及库函数中计算次方数的函数

#include<iostream> #include<cmath> using namespace std; ​ int main() { //1.输入一个整数 int n=0; cin >> n; int ret; int i=0; //2.获取每一位数字%10,依次去除每一位数字/10 while(n) { //获取数字,并判断其是奇数还是偶数 %2:1则为真,0则为假 if(n % 10 % 2) ret += 1 * pow(10,i); else ret += 0 * pow(10,i); //去除数字的最后一位 n /= 10; i++; } cout << ret << endl; return 0; }
#include<iostream> #include<string> using namespace std; //这里我们将这个数字视为字符串,将字符串中的每一位转换为ASCII码值,来进行转换 int main() { string s; cin >> s; int i = 0; for(i = 0;i < s.size();i++) { if(s[i] % 2 ) s[i] = '1'; else s[i] = '0'; } cout << s << endl; return 0; }

<!-- 这是一张图片,ocr 内容为: -->

这里运行出来我们发现当输入222时,我们得到的结果是000,这是因为我们使用的是字符串输出,那么这里我们使用stoi()进行转换成整数进行输出即可

cout << stoi(s) << endl;

<!-- 这是一张图片,ocr 内容为: -->

http://www.jsqmd.com/news/548262/

相关文章:

  • 初始化表为何需引用符号
  • Claude Code 使用中转api
  • Llava-v1.6-7b跨平台开发:Qt框架集成指南
  • 2026年推荐一些可以免费玩的电脑游戏合集 - 品牌排行榜
  • 我的闹钟有时候会发生异常----需要完整的异常处理
  • 深入解析Java内存模型(JMM)与并发问题:从原理到解决方案
  • 外地来京就医陪诊科普:哪些患者最需要陪诊服务?如何选择适配的陪诊机构? - 品牌排行榜单
  • 2026年靠谱的通勤运动摩托车/长途运动摩托车/越野运动摩托车/运动摩托车试驾新厂实力推荐(更新) - 行业平台推荐
  • 2026年热门的定制纸杯/可降解纸杯/广告纸杯推荐公司 - 行业平台推荐
  • 2026年低配置电脑也能玩的游戏有哪些推荐 - 品牌排行榜
  • 2026年江苏有哪些ERP企业推荐?这份榜单值得参考 - 品牌排行榜
  • 【ComfyUI】Qwen-Image-Edit-F2P在Qt桌面应用中的集成:开发本地化的人像生成工具
  • 零基础玩转ANIMATEDIFF PRO:手把手教你制作电影感光斑特效
  • 2026常州本地主要的ERP服务商有哪些? - 品牌排行榜
  • 终极指南:如何在3分钟内免费解锁米哈游游戏世界的神秘字体
  • ADB 命令帮助文档中文翻译
  • RealityCapture从点云到精模:手把手教你用内置工具修模型、减面、展UV
  • 2026年口碑好的强磁磁选机/磁选机设备/电磁磁选机/铁矿石专用磁选机制造厂家推荐 - 行业平台推荐
  • BetterGI 0.38.1版本安装失败?3步快速解决原神自动化工具启动问题
  • BEYOND REALITY Z-Image创意玩法:用AI生成不同风格的人物肖像
  • 我做了一款小程序:维鲁多魔盒
  • 2026年质量好的精密模具/双色精密模具厂家质量参考评选 - 行业平台推荐
  • Windows下OpenClaw安装指南:对接GLM-4.7-Flash模型服务
  • 突破游戏视觉定制边界:LeaguePrank的安全实现与创新应用
  • DeepChat惊艳效果:Llama3:8b生成的‘AI时代教师能力模型’含能力维度与培养路径
  • Educational Codeforces Round 1 复盘
  • 零代码基础也能用:万物识别-中文-通用领域镜像一键部署教程
  • 蛋糕预订|基于springboot + vue蛋糕预订系统(源码+数据库+文档)
  • AI智能证件照制作工坊高可用部署:生产环境配置建议
  • 2026中国木门十大品牌推荐及行业发展趋势观察 - 品牌排行榜