Общая форма записи
Пример
Пример
Пример
Пример программы
Результат работы программы
Пример
У=3;
printf("\n Значение переменной у=%10.7f",х);
Значение переменной у=3.0000000
В программе 10 — общее количество позиций под значение переменной; 7 — количество позиций после десятичной точки.
Функция форматированного ввода данных с клавиатуры scan/ выполняет чтение кодов, вводимых с клавиатуры, преобразует их во внутренний формат и передаёт программе. При этом программист может повлиять на правила интерпретации входных кодов с помощью спецификаций форматной строки.
Общая форма записи функции scan/
scanf ("строка_форматов", адрес_объекта_1, адрес_объекта_2, ..., адрес_объекта_п);
Строка форматов аналогична функции print/. Адрес объекта генерируется следующим образом: &имя объекта. Строка форматов и список аргументов для функции обязательны.
scanf("%d", &m); | |
/* Ввести целое число и присвоить | */ |
/* его значение переменной т. | */ |
scanf("%lf", &xl); | |
/* Ввести значение переменной xl, | */ |
/* имеющей тип double. | */ |
§1.7. ОператорыУсловный оператор if Общая форма записи
if(< выражение>) <оператор 1>;
[else
<оператор 2>;]
Если выражение истинно, то выполняется <оператор 1>, если выражение ложно, то выполняется <оператор 2> (при наличии опции else). Оператор z/может быть вложенным.
if | (key == | 1) | ||||||
printf("\n | Выбран первый | пун] | <т ") ; | |||||
el | зе if (key | == | 2) | |||||
printf( | "\n Выбран | ВТ | орой | пункт"); | ||||
else | ||||||||
printf( | "\n Первый | и | вторе | эй | пункты | не | ||
выбраны") , |
Возможно использование оператора if без опции else. При использовании обеих форм оператора z/Ъпция else связывается с последним оператором if.
if | (key!= l) if (key == | 2) | ||||
printf( | "\n | Выбран | второй | пункт"); | ||
else | ||||||
printf( | "\n | Первый и | второй | пункты | не | |
выбраны | ") ; |
Если <onepamopl> или <оператор2> должны состоять из нескольких операторов, то необходимо использовать составной оператор (блок).
if (key =
{
n=n+l; m=l+r;
}else
{
m=m-1;
n=l-r; }
Оператор ветвления switch
Оператор if позволяет осуществить выбор только между двумя вариантами. Для того, чтобы производить выбор одного из нескольких вариантов используется оператор switch.
switch( <целое выражение> ) { case <константное выражение1>: | |
<оператор1>; break; | |
case <константное выражение2>: | <оператор2>; break; |
default: } | <оператор п+1>; |
Оператор выполняется следующим образом:
1) вычисляется выражение в скобках оператора switch;
2) полученное значение сравнивается с метками (константными выражениеми) в опциях case;
3) сравнение производится до тех пор, пока не будет найдена метка, соответствующая данному значению, после этого выполнится оператор соответствующей ветви;
4) если соответствующая метка не найдена, то выполнится оператор в опции default.
Альтернатива default может отсутствовать, тогда не будет произведено никаких действий.
Опция break осуществляет выход из оператора switch и переход к следующему за ним оператору. При отсутствии опции break будут выполняться все операторы, начиная с помеченного данной меткой и кончая оператором в опции default.
Константые выражения (выражения, операнды которого константы) должны быть целого типа (включая char).
Пример.Разработать программу, определяющую день недели по его введенному номеру. Программа должна реагировать на неверно введенный номер дня недели.
main
int i;
printf("\пВведите номер дня недели: "); scanf("%u", &i); switch( i )
{
case 1: printf("\n Понедельник."); break; case 2: printf("\n Вторник."); break;
case 7: printf("\n Воскресенье."); break; default:
{
printf("\n Неверно введен "); printf("номер дня недели.");
Операторы цикла
В языке Си реализованы три вида операторов цикла:
1) while — цикл с предусловием;
2) do...while — цикл с постусловием;
У) for — цикл с заданным числом повторений (цикл с предусловием).
Цикл while