简体   繁体   中英

Trouble using count function

Below if my code that is supposed to ask for user for 2 numbers and output the sum of all even numbers between them. I am only having trouble using the count function as I don't believe I am setting it right and google has only helped me so far

#include <iostream>

using namespace std;
int main() {
    int num1, num2, sum;
    while(num1 > num2) {
        cout << "Enter 2 numbers seperated by a space. " << endl;
        cout << "First number must be smaller then second number. " << endl;
        cin >> num1 >> num2;
        cout << endl;
    }
    if(num1 % 2 == 0)
        count(== num1);
    else
        count(== num1 + 1);
    while(count(<= num2)) {
        sum = sum + count;
        count = count + 2;
    }

    cout << "The sum of the even intergers between " << num1 << "and " << num2
         << " = " << sum << endl;
    return 0;
}

There is no count() function in your code, nor is there a standard count() function in the standard C++ library that does what you want (though std::accumulate() comes close). Nor do you really need such a function anyway, a simple loop will suffice.

Try something more like this:

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

int main() {
    int num1, num2, sum = 0;

    do {
        cout << "Enter 2 numbers seperated by a space. " << endl;
        cout << "First number must be smaller then second number. " << endl;
        if (cin >> num1 >> num2) {
            if (num1 < num2) break;
        }
        else {
            cin.clear();
            cin.ignore(numeric_limits<streamsize>::max(), ‘\n’);
        }
        cout << endl;
    }
    while (true);

    for (int num = num1; num <= num2; ++num) {
        if ((num % 2) == 0)
            sum += num;
    }

    cout << "The sum of the even integers between " << num1 << " and " << num2 << " = " << sum << endl;
    return 0;
}

If you want to omit num1 and num2 from the sum, simply change the loop accordingly:

for (int num = num1 + 1; num < num2; ++num) {

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM