#cpp
Дано натуральное число N (N<=109). Определить сколько раз в нем встречается последняя цифра (без учета последней цифры). #include#include main() { int N,i,c; scanf ("%d", &N); i=0; c=N%10; while (N%10 >= 0) { N=N%10; i++; } printf ("%d", i); } Программа зацикливается. Почему?
Ответы
Ответ 1
cin >> n; int last = n%10; n /= 10; int count = 0; while(n) { if (n%10 == last) count++; n /= 10; } cout << count; Где-то так... Если вы имеете в виду, что в числе 1254423452331212 последняя цифра встречается 4 раза. Ваша программа не может не зацикливаться, так как с какого-то момента переменная цикла не меняется (когда становится одной цифрой, N%10 равно N), и условие остается истинным...Ответ 2
N=N%10; В этом месте должно быть деление, а не остаток. Зацикливается из-за того, что остаток от деления на 10 никогда не меняется. PS: А ещё код не дописан - не хватает собственно проверки на равенство последней цифре.
Комментариев нет:
Отправить комментарий