Дана последовательность из n целых чисел. Найти сумму элементов, в записи которых есть цифра 4

Написала, следующий код:

#include <iostream>
using namespace std;
int main() {
    int n, a,s=0,c;
    cout << "Input n" << endl;
    cin >> n;
    for (int i = 0; i < n; i++) {
        cout << "input a" << endl;
        cin >> a;
        int temp = a; 
        while (a > 0)
        {
            c = a % 10;
            a /= 10;
        }
        if (c == 4) s+= temp;
    }
    cout << s << endl;
}

но программа работает неправильно, подскажите, где ошибка? а то никак разобраться не могу


Ответы (1 шт):

Автор решения: Mikhailo

Перенесите обработку случая наличия 4 в цикл, вне его вы проверяете только последнюю цифру:

while (a > 0)
{
    c = a % 10;
    if (c == 4)  { s+= temp; break; } // Суммируем и выходим из цикла
    a /= 10;
}
    
while (a > 0)
{
    c = a % 10;
    if (c == 4)  { s+= temp; a = 0; } // Суммируем и выходим из цикла
    a /= 10;
}
→ Ссылка