-
Строка формата представляет собой указание на совершение арифметических операций сложения ("+")
и вычитания над целочисленными аргументами ("%d"). Функция возвращает результат вычислений,
либо выводит информацию об ошибке и аварийно останавливает программу. Например:
...
int res;
res=worker("%d+%d-%d",7,12,-9);
printf("%d\n",res);
...
Результат:
28
-
Строка формата представляет собой указание на систему счисления (нат.значение от 2 до 16), в которой должен быть выведен набор последующих
целочисленных ("%d") или вещественных ("%f") аргументов, по одному в каждой строке. У вещественных аргументов следует
отбросить дробную часть перед выполнением операций.
Функция возвращает 1, если строка сформирована корректно и 0 в противном случае.
Например:
...
int res;
res=worker("16%d%f",17,10.12);
printf("\n------\n%d\n",res);
...
Результат:
11
A
------
1
-
Строка формата представляет собой указание на округление переданых по ссылке вещественных переменных, либо к ближайшему целому ("%r"),
либо отбрасыванием дробной части ("%t").
Функция возвращает 1, если строка сформирована корректно и 0 в противном случае.
Например:
...
int res;
float a,b,c;
a=1.9; b=2.9; c=3.5;
res=worker("%t%r%t",&a,&b,&c);
printf("%0.1f %0.1f %0.1f\n------\n%d\n",a,b,c,res);
...
Результат:
1.0 3.0 3.0
------
1
-
Строка формата представляет собой указание на суммирование вещественных("%f") или целочисленных("%f") аргументов.
Функция возвращает полученную вещественную сумму, если строка сформирована корректно,
либо выводит информацию об ошибке и аварийно останавливает программу.
Например:
...
float res;
res=worker("%d%f%d",1,2.5,3);
printf("%0.1f\n",res);
...
Результат:
6.5
-
Строка формата представляет собой указание на замену переданных по ссылке вещественных ("%f") или целочисленных ("%d")
аргументов их модулем.
Функция возвращает 1, если строка сформирована корректно и 0 в противном случае.
Например:
...
int res;
float a,b;
int c;
a=1.9; b=-2.9; c=-3;
res=worker("%f%f%d",&a,&b,&c);
printf("%0.1f %0.1f %d\n------\n%d\n",a,b,c,res);
...
Результат:
1.9 2.9 3
------
1
-
Строка формата представляет собой указание на вычисление среднего арифметического вещественных("%f" или "%-f") аргументов.
Если используется спецификатор "%-f", то у аргумента следует сменить знак на противоположный перед выполнением вычисления.
Функция возвращает полученную вещественную сумму, если строка сформирована корректно,
либо выводит информацию об ошибке и аварийно останавливает программу.
Например:
...
float res;
res=worker("%f%-f%f",1,2,1);
printf("%0.1f\n",res);
...
Результат:
0.0
-
Функция позволяет определить факт вхождения одного из строковых аргументов("%s"), начиная с первого, в нулевой строковый аргумент,
который присутствует в обязательном порядке и не требует для себя спецификатора.
Если вхождение присутствует, то функция возвращает номер найденного аргумента. Если вхождений не найдено, функция возвращает 0. Если строка
формата сформирована некорректно, функция возвращает -1.
...
int res;
res=worker("%s%s%s","Каждый охотник желает знать...","каждый","Охотник","желает");
printf("%d\n",res);
...
Результат:
3
-
Строка формата представляет собой указание на системы счисления, в которых должны быть выведены последующие
целочисленные аргументы ("%XXd"), по одному в каждой строке. "XX" представляет собой основание системы счисления, от "02" до "16".
Функция возвращает 1, если строка сформирована корректно и 0 в противном случае.
Например:
...
int res;
res=worker("%16d%02d",17,10);
printf("\n------\n%d\n",res);
...
Результат:
11
1010
------
1
-
Функция позволяет найти максимум среди переданных вещественных ("%f") и строковых ("%s") аргументов.
Строковые аргументы должны быть переведены в вещественное значение перед выполнением операции, либо заменены нулем, если перевод невозможен.
Функция возвращает полученный вещественный максимум, если строка сформирована корректно,
либо выводит информацию об ошибке и аварийно останавливает программу.
...
float res;
res=worker("%s%f%s","1.23",5.0,"17");
printf("%0.1f\n",res);
...
Результат:
17.0