#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 условие проверяется до того, как выполняется тело цикла.
/* подсчет вводимых символов; 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 означает печать без десятичной точки и дробной части.
Комментариев нет:
Отправить комментарий