Функция форматированного вывода printf Синтаксис функции: printf (форматная_строка [, список_аргументов]); Форматная строка ограничена двойными кавычками и может включать произвольный текст, управляющие символы и спецификации преобразования данных.
Пример 1. printf("n. Радиус цилиндра r="); Пример 2. printf("Объём цилиндра: %10. 4 fn", v); Пример 3. printf(“R= %f t V=%fn", R, V);
Синтаксис спецификации преобразования: %[ширина_поля][. точность]спецификатор где • ширина_поля – натуральное число, определяющее число позиций экрана под выводимое значение; • точность − натуральное число, определяющее количество цифр в дробной части числа или мантиссы числа;
спецификатор – определяет тип выводимых числовых данных: • d – тип int, • f – тип float или double, форма числа с фиксированной точкой, • e – тип float или double, форма числа с плавающей точкой (с мантиссой и порядком), • ld – тип long, • Lf – тип long double, форма числа с фиксированной точкой, • Le – тип long double, форма числа с плавающей точкой.
C – символ, S - строка
Пример 4. float c, e; int k; c=48. 3; k=-83; e=16. 33; printf (“nc=%ftk=%dte=%e”, c, k, e); на экран выводится : с=48. 299999 k=-83 e=1. 633000 e+01
Пример 5. float c, e; int k; c=48. 3; k=-83; e=16. 33; printf (“nc=%5. 1 ftk=%5 dte=%10. 3 e”, c, k, e); на экране получится такая строка : с= 48. 3 k= -83 e= 1. 633 e+01
Функция ввода данных scanf() Синтаксис функции: scanf (форматная_строка , список_аргументов); Форматная строка имеет вид: “% спецификатор1 % спецификатор2……. ”
Для ввода числовых данных используют спецификаторы: • d – тип int, • f – тип float , форма числа с фиксированной точкой, • e – тип float , форма числа с плавающей точкой (с мантиссой и порядком), • lf – тип double, форма числа с фиксированной точкой, • le – тип double, форма числа с плавающей точкой, • ld – тип long, • Lf – тип long double, форма числа с фиксированной точкой, • Le – тип long double, форма числа с плавающей точкой.
В отличие от функции printf() в списке аргументов функции scanf() должны быть адреса переменных, т. е. каждой переменной должен предшествовать символ &, означающий адрес объекта. Пример. scanf(“%d%f%f”, &n, &z, &x); В качестве разделителей полей данных scanf воспринимает пробелы, символы табуляции, символы новых строк.
•
Строки – разновидность массива ( тип массива – символьный char ). Описание строки: char slovo[20]; char fam[15]=“Иванов”; char student[]=“Петров А. А. ”; Последним символом строки всегда является нуль-символ ‘ ’(конец строки).
Задача 1 Проверьте, все ли буквы в слове различны. #include “stdafx. h” #include void main() { char a[30]; int i, j, k, prizn; setlocale(LC_ALL, ”Russian”); printf("Введите слово : "); scanf("%s", &a);
pr=0; // pr=0 - все буквы разные // pr =1 - есть одинаковые буквы k=strlen(a); //k-кол-во букв for(i=0; i
Задача 2 Вставьте между одинаковыми буквами в слове пробел. #include “stdafx. h” #include void main() { char a[30]; int i, j, k; printf(“Slovo : "); scanf("%s", &a); k =strlen(a); // Длина строки
for(i=0; ii; j--) a[j+1]=a[j]; a[i+1]=' '; k++; } printf("%sn", a); }