Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Язык C. Ч3.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
254.2 Кб
Скачать

Int main(void)

{

float salary;

printf("\aEnter your desired monthly salary:");/* 1 */

printf(" $_______\b\b\b\b\b\b\b"); /* 2 */

scanf("%f", &salary);

printf("\n\t$%.2f a month is $%.2f a year.", salary,

salary * 12.0); /* 3 */

printf("\rGee!\n"); /* 4 */

return 0;

}

Результаты выполнения программы

Давайте пошагово пройдемся по этой программе и посмотрим, как она будет рабо­тать в системе, где управляющие последовательности ведут себя описанным образом. (Фактическое поведение может отличаться. Например, XCode 4.6 отображает симво­лы \а, \b и \r в виде перевернутых вопросительных знаков!)

Первый оператор printf () (помечен номером 1) воспроизводит звуковой сигнал (вызванный последовательностью \а), а затем выводит следующую фразу:

Введите желаемую сумму месячной зарплаты:

Поскольку в конце строки отсутствует последовательность \n, курсор устанавлива­ется в позицию, следующую за двоеточием.

Второй оператор printf () начинает вывод с позиции, где остановился первый оператор, поэтому после его выполнения вывод на экране выглядит так:

Введите желаемую сумму месячной зарплаты: $

Пробел между двоеточием и знаком доллара появился в связи с тем, что строка во втором операторе начинается с пробела. Результатом семи символов возврата на одну позицию влево будет перемещение курсора на семь позиций влево. Курсор про­ходит через семь символов подчеркивания и располагается непосредственно после знака доллара. Обычно при возврате на одну позицию влево символы, через которые проходит курсор, не очищаются, но в некоторых реализациях может применяться де­структивный возврат на одну позицию (т.е. забой), поэтому результаты выполнения данной простой программы изменятся.

В этом месте вы вводите с клавиатуры свой ответ, скажем, 4000.00. Теперь строка принимает следующий вид:

Введите желаемую сумму месячной зарплаты: $4000.00

Вывод третьего оператора printf () начинается с \n\t. Символ новой строки перемещает курсор в начало следующей строки. Символ табуляции перемещает курсор в следующую позицию табуляции в этой строке — обычно, но не обязательно, в позицию 9. Затем выводится оставшаяся часть строки. После выполнения этого оператора экран выглядит так:

Введите желаемую сумму месячной зарплаты: $4000.00

$4000.00 в месяц соответствует $48000.00 в год.

Поскольку в этом операторе printf () символ новой строки не используется, курсор остается непосредственно после завершающей точки.

Четвертый оператор printf () начинается с последовательности \r. Она помеща­ет курсор в начало текущей строки. Затем отображается строка “Ого!” и последовательность \n переводит курсор на следующую строку.

Окончательный вывод на экране имеет следующий вид:

Введите желаемую сумму месячной зарплаты: $4000.00

Ого! $4000.00 в месяц соответствует $48000.00 в год.