Дана последовательность из 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;
}