给出若干个整数(每个整数不超过9位),让他数数每个整数里有几个偶数。【输入】 输入数据有多行,每行一个整数 【输出】 对每行整数,输出其中包含多少个偶数(个位数),末尾换行。
时间: 2024-12-16 14:22:13 浏览: 7
要解决这个问题,你可以使用C++来编写一个程序,该程序读取每一行的整数并计算其中偶数的数量。以下是一个简单的C++程序,它采用迭代的方式逐个检查每一位数字:
```cpp
#include <iostream>
using namespace std;
int countEvens(int num) {
int count = 0;
while (num != 0) {
// 取模操作得到当前位的值
int digit = num % 10;
if (digit % 2 == 0) {
count++; // 如果是偶数,则计数器加一
}
num /= 10; // 移除最低有效位
}
return count;
}
int main() {
string inputLine;
while (getline(cin, inputLine)) { // 从标准输入读取一行
int number = stoi(inputLine); // 将字符串转换为整数
int evenCount = countEvens(number);
cout << "The number contains " << evenCount << " even digits.\n"; // 输出结果
}
return 0;
}
```
这个程序首先定义了一个`countEvens`函数,用于计算给定整数中的偶数数量。然后,在`main`函数中,我们读取用户输入的一行行数字,将其转换为整数,调用`countEvens`函数计算偶数个数,并打印出来。
**相关问题--:**
1. 这段代码如何处理多位数输入?
2. `cin`和`getline`有什么区别?为什么在这里选择`getline`?
3. `stoi`是什么作用,它的返回类型是什么?
4. 当输入超过9位数时,这个程序还能正常工作吗?如果不能,请提供解决方案。
阅读全文