Помогите составить легкую программу на C++

214
18 марта 2017, 02:45

Дано натуральное число N (N<=109). Определить сколько раз в нем встречается последняя цифра (без учета последней цифры).

#include <stdio.h>
#include <conio.h>
main()
{
    int N,i,c;
    scanf ("%d", &N);
    i=0;
    c=N%10;
    while (N%10 >= 0)
    {
        N=N%10; 
        i++;
    }
    printf ("%d", i);
}

Программа зацикливается. Почему?

Answer 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), и условие остается истинным...

Answer 2
N=N%10;

В этом месте должно быть деление, а не остаток.
Зацикливается из-за того, что остаток от деления на 10 никогда не меняется.

PS: А ещё код не дописан - не хватает собственно проверки на равенство последней цифре.

READ ALSO
Ошибка при addListener

Ошибка при addListener

Добрый день! Использую ExtJS 20

319
Не обновляется captcha

Не обновляется captcha

Капча работает, но при нажатие обновить она не обновляется, лишь при перезагрузки страницы Вот блок с капчей

349
Получение индекса объекта в массиве

Получение индекса объекта в массиве

Всем привет! Нужно не столько решение, сколько подсказкаКак получить индекс объекта в массиве типа - [1, 2, 3, 4] - понятно

257