Помогите разобратся в коде программирования Си
В частности зачем нужен пред оператором scanf и как вообще читаются эти две строчки.

  • Функция сканф возвращает количество успешно введенных полей. В вашем случае она принимает одно поле (десятичное число с плавающей точкой) , и, соответственно, если ввод успешен возвращает единицу. Восклицательный знак перед сканфом - оператор логического отрицания, он обращает ноль в булевское значение ИСТИНА, а все остальное (все кроме нуля) в булевскую ЛОЖЬ. Таким образом внешний цикл остановится как только вы введете какое нибудь десятичное с плавающей точкой. Условие внутреннего цикла "повторять пока не будет введен знак перехода на новую строку" (оператор != означает "не равно"). По-сути, внутренний цикл постоянно опрашивает клавиатуру (на каждом его прогоне вызывается гетчар, если не нажали ентер, итерация повторяется, снова вызывается гетчар и т. д. )

    ответ на ваш второй вопрос, почему знак перехода на новую строку в кавычках - потому что тут он является не символом форматной строки как знак перехода на новую строку, а обозначает, грубо говоря, кнопку на клавиатуре, т. е. символ, поступающий на вход функции гетчар. Т. е. он имеет тут тип чар. Можно вместо этого написать например его десятичный код 10 (см табл ASCII)