如何用C++仅通过if、while实现一行输入两数并统计指定数字出现次数
输入读取逻辑
cin的>>运算符默认会自动跳过所有空白字符(包括空格、换行、制表符),所以不需要额外做特殊处理,直接连续读取两个int类型变量即可,不管输入的两个值是在同一行还是分多行输入,都能正常读取。
统计逻辑实现
- 定义变量
v2存储第二个输入的正整数,定义计数变量count初始值为0 - 用
while循环逐位判断v2的数字,循环条件为v2 > 0:- 用取余运算
v2 % 10获取v2的最后一位数字 - 用
if判断该位数字是否等于v1,相等则将count加1 - 用整数除法
v2 = v2 / 10移除已经判断过的最后一位
- 用取余运算
- 循环结束后直接输出
count的值即可
完整可运行代码
#include <iostream> using namespace std; int main() { int v1, v2; int count = 0; cin >> v1 >> v2; while (v2 > 0) { int current = v2 % 10; if (current == v1) { count++; } v2 = v2 / 10; } cout << count << endl; return 0; }
拿示例输入2 1242182测试,运行后输出3,完全符合预期要求。
内容的提问来源于stack exchange,提问作者Julian Williams
相关产品推荐
相关产品推荐

