У меня есть массив, и я хочу ввести диапазон, а затем найти сумму всех четных чисел в диапазоне? - PullRequest
0 голосов
/ 16 октября 2018

Массив задан в коде, мой ввод состоит из двух чисел, таких как 2, 7, и между вторым и седьмым элементом массива код должен найти сумму всех четных чисел. Как мне это сделать??

#include <iostream>
using namespace std;

int main(){
    int S, n1, n2;
    cont int n = 8;
    int found = 0;

    cout << "Enter the beginning of a range: ";
    cin >> n1;

    cout << "Enter the end of a range: ";
    cin >> n2;

    int a[] = {1, 5, 9, 6, 2, 7, 4, 3};

    int i;
    for(i = 0;i <= n; i++){
        if(a[i] % 2 == 0){
        S = S + a[i];
        found = 1;
        }
    }
    if(found == 1){
        cout << "Even numbers found" << " " << "Sum: " << S <<endl;
    }
    else{
        cout << "Even numbers not found" <<endl;
    }
    return 0;
}

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

Попробуйте это:

#include <iostream>
using namespace std;
int main()
{
    int S, n1, n2;
    cont int n = 8; 
    int found = 0;
    cout << "Enter the beginning of a range: ";
    cin >> n1;
    cout << "Enter the end of a range: ";
    cin >> n2;
    int a[] = { 1, 5, 9, 6, 2, 7, 4, 3 };
    int i;
    for (; n1 <= n2; n1++)
    {
        if (a[n1] % 2 == 0)
        {
            S = S + a[n1];
            found = 1;
        }
    }
    if (found == 1)
    {
        cout << "Even numbers found" << " " << "Sum: " << S << endl;
    }
    else
    {
        cout << "Even numbers not found" << endl;
    }
    return 0;
}
0 голосов
/ 16 октября 2018

Поскольку вы хотите суммировать числа между началом и концом, вам нужно изменить цикл, чтобы использовать введенные вами значения.Измените его следующим образом:

for(int i = n1; i <= n2; i++){
    if(a[i] % 2 == 0){
        S = S + a[i];
        found = 1;
    }
}

Также удалите строку cont int n = 8;, которая вообще не нужна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...