понедельник, 30 декабря 2013 г.

Подсчет символов

#include <stdio.h>

/* подсчет вводимых символов; 1-я версия */
int main(void)
{
        long nc;
        nc = 0;

        while(getchar() != EOF)
                ++nc;
        printf("%ld\n", nc);

        return 0;
}


Инструкция
++nc;
представляет новый оператор ++, который означает увеличить на единицу. Вместо этого можно было бы написать nc = nc + 1, но ++nc намного короче, а часто и эффективнее. Существует аналогичный оператор --, означающий уменьшить на единицу. Операторы ++ и -- могут быть как префиксными (++nc), так и постфиксными (nc++).

Спецификация %ld в printf указывает, что соответствующий аргумент имеет тип long.


#include <stdio.h>

/* подсчет вводимых символов; 2-я версия */
int main(void)
{
        double nc;

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

        return 0;

}


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

Грамматика Си требует, чтобы for-цикл имел тело. Для выполнения этого требования используется точка с запятой, называемая пустой инструкцией.

В циклах while и for условие проверяется до того, как выполняется тело цикла.

Комментариев нет:

Отправить комментарий