Как посчитать удвоение в C? - PullRequest
0 голосов
/ 06 мая 2020

Я работаю над книгой по языку программирования C. Итак, эта программа должна подсчитывать каждую итерацию getchar (). Если я наберу двойное число (2.3 и 1.8), затем CTRL + D, он выведет 8. Почему? не должно ли n c быть 2, так как оно увеличивается на 1 дважды? Спасибо.

int main()
{
    double nc;

    for (nc = 0; getchar() != EOF; ++nc) 
            ;
    printf("%.0f\n", nc);
}

Ответы [ 2 ]

1 голос
/ 06 мая 2020
getchar()

Эта функция используется для чтения одного символа за раз.

Поскольку вы ввели 8 символов ('2', '.', '3', 'enter', '1' , '.', '8', 'enter') всего на выходе получается 8.

1 голос
/ 06 мая 2020

Подсчитайте символы: '2', '.', '3', 'enter', '1', '.', '8', 'enter'. Я получаю 8.

Функция getchar получает символы.

Единственный double в вашем коде - nc, который устанавливается в ноль, а затем увеличивается в восемь раз, оставляя его с как видите, окончательное значение 8,0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...