如何用C++ switch函数判断10个输入整数的奇偶性(含代码片段)
补全C++代码实现奇偶性判断与输入打印功能
没问题,我来帮你补全这段代码,实现打印所有用户输入数字并判断奇偶性的功能。首先修正原代码的小问题,再完成核心逻辑:
#include <iostream> using namespace std; const int LIMIT = 10; int main () { // 声明并初始化变量:计数用int更合适,统计变量初始化为0 int counter; int number; int zeros = 0; int odds = 0; int evens = 0; cout << "Please enter " << LIMIT << " integers, positive, negative, or zeros." << endl; cout << "The numbers you entered are:" << endl; // 循环读取LIMIT个数字 for (counter = 0; counter < LIMIT; counter++) { cin >> number; // 打印当前输入的数字 cout << number << " "; // 用switch判断奇偶性 switch (number % 2) { case 0: // 能被2整除,包括0 if (number == 0) { zeros++; } else { evens++; } break; case 1: case -1: // 正数或负数的奇数 odds++; break; default: // 理论上不会走到这里,因为输入是整数 break; } } // 输出统计结果 cout << "\n\n统计结果:" << endl; cout << "偶数的数量:" << evens << endl; cout << "奇数的数量:" << odds << endl; cout << "零的数量:" << zeros << endl; return 0; }
关键细节解释:
- 变量初始化:原代码中的统计变量
zeros、odds、evens未初始化,会导致随机的统计结果,所以必须初始化为0;counter作为循环计数器,用int类型比float更贴合需求。 - 输入打印:每次读取用户输入后立刻打印,确保所有输入的数字都被输出。
- switch的奇偶判断:利用整数取模的特性,偶数(包括0)取模2结果为0;奇数的话,正数取模2得1,负数取模2得-1,所以用
case 1和case -1同时处理两种奇数情况。 - 零的单独统计:如果需要把0和普通偶数区分开,就像代码里那样单独判断,要是不需要合并统计,直接把0归到偶数里即可。
内容的提问来源于stack exchange,提问作者CoffeeWaterController
相关产品推荐
相关产品推荐

