### Operators and Operator Precedence

Data is useless unless you can do something with it. This lesson
looks at operators which allow us to manipulate data.

### Operators

There are a small number of basic operators which you must
know right away. They are:

- - (unary): signifies a negative number (ie. -12)
- + -: addition and subtraction
- * /: multiplication and division
- %: modulus (the remainder function)

It is assumed that you know how addition, subtraction,
multiplication, and division work. You probably haven't
heard of modulus before. Modulus is the remainder after a
division. For example, 53 / 3 is 17 with a remainder of
2, so the modulus is 2. Therefore 53 % 3 is 2.

What is 39 % 3? What is 25 % 6? The answers are 0 and
1 respectively.

### Operator precedence

If you have had basic algebra, you are probably familiar
with the concept of operator precedence. All the term means
is that certain operations, such as multiplication and division,
will be performed before others, such as addition and
subtraction. If you want to change the order, you can use
parentheses.

Note: Remember that multiplication and division occur before
addition and subtraction.

Examples:
num = 5 + 3 * 6 /* Ans: 23 (multiply goes first) */
num = (5 + 3) * 6 /* Ans: 48 (parentheses go first) */
num = 6 / 2 * 4 /* Ans: 12 (ties are evaluated left to right) */
num = 5 % 3 /* Ans: 2 (5 / 3 leaves a remainder of 2) */

### Getting input with scanf()

Since scanf() has already been covered, this section will
be listed in a condensed format.

- scanf() is used to get input from the keyboard
- it is specified in stdio.h
- it does not display a prompt; use printf() for that
- we have to tell scanf() what type of data to read and where to store it
- first string tells scanf() what to read
- next arguments tell scanf() where to store each item it read

Example code fragment: get two numbers from user and display them.

int num1, num2;
printf("Please enter an integer: ");
scanf("%d", &num1);
printf("Please enter another integer: ");
scanf("%d", &num2);
printf("You entered %d and %d\n", num1, num2);

scanf() conversion specifiers:

- %d: int
- %ld: long int
- %f = float
- %lf = double

### Review of assignment statements

The assignment operator (=) is an operator with very low precedence.
Everything to the right of the "=" sign is evaluated and the result is
stored in the location specified by the variable name to the left of
the "=" sign.

Example code fragment: Calculate the square of a number

float num1, square;
printf("Enter an integer: ");
scanf("%f", &num1);
square = num1 * num1;
printf("The square of the number you entered is %f\n", square);