Код ничего не выводит просто потому, что цикл никогда не завершается.
Нажатие клавиши Enter не приводит к возврату EOF
из getchar()
. Для того, чтобы создать ситуацию EOF при консольном вводе, вам нужно обратиться к документации на ваш терминал. Разные терминалы работают в этом отношении по-разному и их поведение может зависеть от их конфигурации.
Для Linux терминалов EOF обычно возникает, если нажать Ctrl+D при пустом входном буфере. "При пустом входном буфере" означает, что Ctrl+D нужно нажимать либо в начале новой строки, либо сразу после предыдущего нажатия Ctrl+D.
Для Windows терминалов EOF формируется, если ввести Ctrl+Z в начале новой строки и затем ввести Enter.
Отдельно стоит посоветовать вам завершать вывод символом перевода строки: printf("%.0f\n", nc);