Использование функции printf().

Приведем программу, иллюстрирующую обсуждаемые вопросы.

 

#define PI 3.14159

main()

{

int number = 5;

float ouzo = 13.5;

int cost = 31000;

printf("%d женщин выпили %f стаканов ликера.\n", number, ouzo);

printf("Значение числа pi равно %f.\n", PI);

printf("Прощай! Твое искусство слишком дорого для меня. \n");

}

Модификаторы спецификации преобразования, используемые в функции printf().

Мы можем несколько расширить основное определение спецификации преобразования, поместив модификаторы между знаком % и символом, определяющим тип преобразования. В приводимой ниже таблице дан список тех символов, которые вы имеете право туда поместить.

int main()

 

{

 

printf("/%ld/\n", 336);

 

printf("/%5.3d/\n", 336);

 

printf("/%10d/\n", 336);

 

printf("/%-10d/\n", 336);

}

Использование функции printf() для преобразования данных.

main()

{

printf(" %d\n", 336);

printf(" %o\n", 336);

printf(" %x\n", 336);

printf(" %d\n", -336);

}

Как вы, по-видимому, и ожидали, при использовании спецификации %d будет получено число 336 точно так же, как в примере, обсуждавшемся чуть выше. Но давайте посмотрим, что произойдет, когда вы «попросите» программу напечатать это десятичное целое число в восьмеричном коде. Она напечатает число 520, являющееся восьмеричным эквивалентом 336 (5*64+2*8 + 0*1 = 336). Аналогично при печати этого числа в шестнадцатеричном коде мы получим 150.

Таким образом, мы можем использовать спецификации, применяемые для функции printf() с целью преобразования десятичных чисел в восьмеричные или шестнадцатеричные и наоборот. Или же если вы захотите напечатать данные в желаемом для вас виде, то необходимо указать спецификацию %d для получения десятичных чисел, %о — для восьмеричных, а %х— для шестнадцатеричных. При этом не имеет ни малейшего значения, в какой форме число первоначально появилось в программе.

Применение функции scanf().

Так же как для функции printf(), для функции scanf() указываются управляющая строка и следующий за ней список аргументов. Основное различие двух этих функций заключается в особенностях данного списка. Функция printf() использует имена переменных, константы и выражения, в то время как функция scanf() — только указатели на переменные. К счастью, при применении этой функции мы ничего не должны знать о таких указателях. Необходимо помнить только два правила:

1. Если вам нужно ввести некоторое значение и присвоить его переменной одного из основных типов, то перед именем переменной требуется писать символ &.

2. Если вы хотите ввести значение строковой переменной, использовать символ & не нужно.

 

Приведем правильную программу:

int main()

{

int age,ves;

 

printf(" Vas vozrast i ves.\n");

scanf_s(" %d ", &age);

scanf_s("%d", &ves);

printf(" Vas Vozrast %d\n" , age);

printf(" Vas Ves. %d\n", ves);

}

48.Основные операции. Операция присваивания: =. Операция сложения: +. Операция вычитания: -. Операция изменения знака: -. Операция умножения: *. Операция деления: /.

Рассмотрим способы обработки данных - для этого язык Си имеет широкий набор возможностей. Основные арифметические операции: сложения, вычитания, умножения, деления. Операции в языке Си применяются для представления арифметических действий. Например, выполнение операции + приводит к сложению двух величин, стоящих слева и справа от этого знака. Рассмотрим операции =, +, -, *, /

Операция присваивания "="

В языке Си знак равенства не означает "равно". Он означает операцию присваивания некоторого значения. С помощью оператора

year=2004;

переменной c именем year присваивается значение 2004, т.е. элемент слева от знака = - это имя переменной, а элемент справа - ее значение. Мы называем символ = операцией присваивания