"Андрей Богатырев. Хрестоматия по программированию на Си в Unix" - читать интересную книгу автораввода. Какие достоинства и недостатки у следующей реализации:
#include main(){ double cnt = 0.0; while (getchar() != EOF) ++cnt; printf("%.0f\n", cnt ); } Ответ: и достоинство и недостаток в том, что счетчик имеет тип double. Достоинство - можно подсчитать очень большое число символов; недостаток - операции с double обычно выполняются гораздо медленнее, чем с int и long (до десяти раз), программа будет работать дольше. В повседневных задачах вам вряд ли понадобится иметь счетчик, отличный от long cnt; (печатать его надо по формату "%ld"). 1.19. Составьте программу перекодировки вводимых символов со стандартного ввода по следующему правилу: a -> b b -> c c -> d ... z -> a другой символ -> * Коды строчных латинских букв расположены подряд по возрастанию. 1.20. Составьте программу перекодировки вводимых символов со стандартного ввода по следующему правилу: А. Богатырев, 1992-95 - 9 - Си в UNIX B -> A C -> B ... Z -> Y другой символ -> * Коды прописных латинских букв также расположены по возрастанию. 1.21. Напишите программу, печатающую номер и код введенного символа в восьмеричном и шестнадцатеричном виде. Заметьте, что если вы наберете на вводе строку символов и нажмете клавишу ENTER, то программа напечатает вам на один символ больше, чем вы наб- рали. Дело в том, что код клавиши ENTER, завершившей ввод строки - символ '\n' - тоже попадает в вашу программу (на экране он отображается как перевод курсора в начало следующей строки!). 1.22. Разберитесь, в чем состоит разница между символами '0' (цифра нуль) и '\0' (нулевой байт). Напечатайте printf( "%d %d %c\n", '\0', '0', '0' ); |
|
|