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 // количество клеток шахматной доски
