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

Int main(void)

{

int jane, tarzan, cheeta;

cheeta = tarzan = jane = 68;

printf(" чита тарзан джейн\n");

printf("Cчeт первого раунда%4d %8d %8d\n",cheeta,tarzan,jane);

return 0;

}

Многие языки программирования не разрешают тройное присваивание значений, сделанного в этой программе, но в С это считается обычным делом. Присваивание выполняется справа налево. Вначале значение 68 получает переменная jane, затем tarzan и, наконец, это значение присваивается переменной cheeta. В результате получается следующий вывод:

чита

тарзан

джейн

Счет первого раунда

68

68

68

Операция сложения: +

Операция сложения приводит к суммированию двух значений с обеих сторон знака +. Например, оператор

printf("%d", 4 + 20);

выводит число 2 4, но не выражение

4 + 20

Суммируемые значения (операнды) могут быть как переменными, так и константами. Таким образом, следующий оператор заставляет компьютер извлечь значения двух переменных, указанных в правой части оператора, выполнить их сложение, а результат сложения присвоить переменной income:

income = salary + bribes;

Операция вычитания: -

Операция вычитания вызывает вычитание числа, следующего за знаком -, из числа, находящегося перед этим знаком. Например, приведенный ниже оператор присваивает переменной takehome значение 200.0:

takehome = 224.00 - 24.00;

Операции + и - называются бинарными, или двухместными, т.е. они требуют указания двух операндов.

Операции знака: - и +

Знак “минус” может использоваться для указания или изменения алгебраического знака значения. Например, следующие операторы приводят к присваиванию переменной smokey значения 12:

rocky = -12; smokey = -rocky;

Когда знак “минус” применяется подобным образом, он называется унарной операцией, которая выполняется над одним операндом.

Операция умножения: *

Умножение обозначается символом *. Например, следующий оператор умножает значение переменной inch на 2.54 и присваивает результат умножения переменной cm:

cm = 2.54 * inch;

Кстати, не желаете ли составить таблицу квадратов значений? В языке С отсутствует функция возведения в квадрат, но как показано в листинге 5.4, для вычисления квадратов значений можно применять операцию умножения.

Листинг 5.4. Программа squares.с

/* squares.c -- генерирует таблицу квадратов 20 значений*/

#include <stdio.h>

Int main(void)

{

int num = 1;

while (num < 21)

{

printf("%4d %6d\n", num, num * num);

num = num + 1;

}

return 0;

}

Эта программа выводит 20 целых чисел и их квадраты, в чем вы можете убедиться самостоятельно. Давайте рассмотрим более интересный пример.

Экспоненциальный рост

Вы, скорее всего, слышали историю о могущественном правителе, который хотел вознаградить мудреца, оказавшего ему большую услугу. Когда мудреца спросили, что он желает получить, он указал на шахматную доску и попросил положить одно пшеничное зернышко на первую клетку, два зернышка на вторую клетку, четыре — на третью, восемь — на четвертую и т.д. Правитель, не имеющий понятия о математике, был поражен скромностью притязаний мудреца, поскольку был готов предложить ему большие богатства. Мудрец сыграл с правителем злую шутку, как показывает программа в листинге 5.5. Она вычисляет, сколько зернышек приходится на каждую клетку и подсчитывает общую сумму. Так как вы вряд ли следите за ежегодными объемами собранного урожая пшеницы, программа сравнивает промежуточные суммы с довольно приближенным суммарным значением годового урожая, собираемого во всем мире.

Листинг 5.5. Программа wheat.с

/* wheat.c -- экспоненциальный рост*/

#include <stdio.h>

#define SQUARES 64 // количество клеток шахматной доски