You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++考试编程题求助:计算输入五个浮点数中的偶数和

C++ 计算输入浮点数中的偶数和解决方案

题目要求:编写完整程序,允许用户输入五个浮点数,计算其中偶数的和。例如输入12、15、3、5、10时,应输出22(12和10为偶数,和为22),且输入值均大于0。

现有代码

#include <iostream>
using namespace std;

int main()
{
    float numOne = 0;
    float numTwo = 0;
    float numThree = 0;
    float numFour = 0;
    float numFive = 0;
    float evenSum = 0;

    cout << "Please enter the first number";
    cin >> numOne;
    cout << "Please enter the second number";
    cin >> numTwo;
    cout << "Please enter the third number";
    cin >> numThree;
    cout << "Please enter the fourth number";
    cin >> numFour;
    cout << "Please enter the fifth number";
    cin >> numFive;

    return 0;
}

完整解决方案代码

以下代码实现了输入验证、偶数判断及求和逻辑,同时用数组优化了变量管理:

#include <iostream>
#include <cmath> // 用于计算浮点数余数的fmod函数
using namespace std;

int main()
{
    float nums[5];
    float evenSum = 0.0;

    // 循环处理5次输入
    for (int i = 0; i < 5; ++i) {
        cout << "Please enter number " << i + 1 << ": ";
        cin >> nums[i];
        
        // 强制输入大于0的数,不合法则重新输入
        while (nums[i] <= 0) {
            cout << "Input must be greater than 0. Please re-enter: ";
            cin >> nums[i];
        }

        // 判断浮点数是否为偶数:除以2余数为0
        if (fmod(nums[i], 2.0) == 0.0) {
            evenSum += nums[i];
        }
    }

    cout << "Sum of even numbers: " << evenSum << endl;

    return 0;
}

关键逻辑说明

  • 输入验证:通过while循环拦截小于等于0的输入,确保符合题目要求。
  • 偶数判断:使用fmod函数计算浮点数与2的余数,余数为0则判定为偶数(适配浮点数场景,如12.0会被识别为偶数,12.5则不会)。
  • 数组优化:用数组替代单独变量,简化代码结构,后续若需调整输入数量只需修改循环次数即可。

初学者友好版(单独变量写法)

如果更习惯用单独变量管理输入,可使用以下版本:

#include <iostream>
#include <cmath>
using namespace std;

int main()
{
    float numOne = 0, numTwo = 0, numThree = 0, numFour = 0, numFive = 0;
    float evenSum = 0.0;

    // 第一个数输入与验证
    cout << "Please enter the first number: ";
    cin >> numOne;
    while (numOne <= 0) {
        cout << "Input must be greater than 0. Please re-enter: ";
        cin >> numOne;
    }
    if (fmod(numOne, 2.0) == 0.0) evenSum += numOne;

    // 第二个数输入与验证
    cout << "Please enter the second number: ";
    cin >> numTwo;
    while (numTwo <= 0) {
        cout << "Input must be greater than 0. Please re-enter: ";
        cin >> numTwo;
    }
    if (fmod(numTwo, 2.0) == 0.0) evenSum += numTwo;

    // 第三个数输入与验证
    cout << "Please enter the third number: ";
    cin >> numThree;
    while (numThree <= 0) {
        cout << "Input must be greater than 0. Please re-enter: ";
        cin >> numThree;
    }
    if (fmod(numThree, 2.0) == 0.0) evenSum += numThree;

    // 第四个数输入与验证
    cout << "Please enter the fourth number: ";
    cin >> numFour;
    while (numFour <= 0) {
        cout << "Input must be greater than 0. Please re-enter: ";
        cin >> numFour;
    }
    if (fmod(numFour, 2.0) == 0.0) evenSum += numFour;

    // 第五个数输入与验证
    cout << "Please enter the fifth number: ";
    cin >> numFive;
    while (numFive <= 0) {
        cout << "Input must be greater than 0. Please re-enter: ";
        cin >> numFive;
    }
    if (fmod(numFive, 2.0) == 0.0) evenSum += numFive;

    cout << "Sum of even numbers: " << evenSum << endl;

    return 0;
}

内容的提问来源于stack exchange,提问作者Ethan Dentner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 03:52:43