Язык программирования C

Скачать в pdf «Язык программирования C»


Программа подсчета символов накапливает счет в переменной типа long вместо int. Переменные типа long имеют длину не менее 32 бит. Хотя в некоторых системах типы int и long имеют одинаковую длину, в других тип int является 16-разрядным и


может хранить числа не более 32 767. Чтобы переполнить счетчик типа int, потребуется не такой уж длинный поток. Спецификация вывода %ld сообщает функции printf, что соответствующий аргумент имеет тип long — длинное целое число.


Можно работать со счетчиком даже большей емкости, если использовать для него тип double (аналог float, но с двойной точностью). Вместо while можно применить цикл for, чтобы проиллюстрировать другой способ записи циклов:


#include <stdio.h>


/* подсчет символов во входном потоке; 2-я версия */ main()

{


double nc;


for (nc = 0; getcharO != EOF; ++nc)


r


printf(«%.Ofn», nc);

}


В функции printf спецификация %f используется и для float, и для double; конструкция %. Of подавляет вывод десятичной точки и дробной части, которая равна нулю.


Тело данного цикла for пусто, поскольку все операции выполняются при проверке условия и модификации переменных. Однако грамматика С требует, чтобы оператор for имел тело. Это требование удовлетворяется наличием пустого оператора — точки с запятой. У нас в программе он ставится в отдельной строке, чтобы выделить тело цикла.


Прежде чем закончить с программой подсчета символов, сделаем одно замечание. Если во входном потоке совсем нет символов, то проверка условия в while или for дает отрицательный результат при первом же вызове getchar, и программа выдает нуль, который и является правильным ответом. Это важно. В операторах while и for хорошо именно то, что проверка выполняется в начале цикла перед входом в его тело. Если делать в цикле нечего, то ничего и не делается, поскольку до операторов тела управление так и не доходит. Программы должны действовать корректно, встретив поток ввода нулевой длины. Операторы while и end помогают безошибочно обрабатывать разного рода предельные случаи.

Скачать в pdf «Язык программирования C»