Есть ли альтернативный способ обработки этого вечно работающего кода? - PullRequest
0 голосов
/ 16 июня 2019
#include <stdio.h>
int main()
{
    int n, r, i, count = 0;
    for (i = 0; i <= 100; i++)
    {
        while (i != 0)
        {
            r = i % 10;
            if (r == 3)
            {
                count++;
            }
            i = i / 10;
        }
    }

    printf("occurrences of 3 =%d ", count);
    return 0;
}

Мне нужно узнать, сколько раз цифра «3» встречалась между 0 и 100. Но этот код работает вечно.

1 Ответ

1 голос
/ 16 июня 2019

Вы делаете i до 0 из внутреннего цикла while каждый раз, так что ваш цикл for работает вечно.

Использовать временную переменную для внутреннего цикла while.

    int temp = i;
    while (temp != 0)
    {
        r = temp % 10;
        if (r == 3)
        {
            count++;
        }
        temp = temp / 10;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...