﻿ Basic Calculations - C Language Learned the Hard Way
C language learned by suffering

### Basic Calculations

##### Calculation and display of results
In the previous section, the equation 100+200=300 was displayed on the screen.
At that time, the numbers 100, 200, and 300 were arranged directly.
In other words, the "300" part of the answer was calculated by a human being first.

However, this makes no sense using a computer.
Such calculations should be done by computers.

In the C language, to calculate, one only needs to write a mathematical expression.
The following program is an example of having the computer calculate 100+200.

source code
`````` int main(void)
{
100 + 200;
}``````

The result of executing this program will be as follows

Execution Result

The screen does not show any results.
This is not surprising, since the previous program only says to compute 100+200, and
The reason is that there is no instruction to display the result of the calculation.

Computers are stubborn and obedient
Thus, computers are both stubborn and straightforward.
In short, it obediently executes every instruction it is given.
It also has a stubbornness that will not do anything else.

From a human point of view, it is only natural that it should display the result of a calculation.
Computers have absolutely no such attentiveness.

So how do you display the results of your calculations?
Of course, the printf function is used to display on the screen.
We know how to use the printf function to display text and convert numbers to digits.

In fact, it is also possible to pass a formula and convert the result of the formula's calculation into a number.
The following program is an example of having 100+200 calculated and displayed.

source code
`````` #include <stdio.h>

int main(void)
{
printf("%d\n", 100 + 200);
return 0;
}``````

The result of executing this program will be as follows

Execution Result
300

The noteworthy part of this program is that the printf function is passed to the
The result of the expression is 300, not 100+200.
The 100+200 part is calculated by itself (regardless of the printf function) and converted to 300.
The 300 was then further converted into a number and displayed on the screen as 300.
##### four arithmetic operators
In the previous section, addition was performed, but of course other calculations are also possible.
The following table shows the basic operators in the C language.

Symbols in C Symbols in Mathematics Function
-1 Subtraction
* ×x Multiplication
/ ÷ (÷) Division
% (%) ... remainder (remainder of division)

In this table, you will notice that we sometimes use different symbols than in mathematics.
Since there is no x or ÷ among the symbols that can be represented on a typical computer keyboard, the
Many programming languages, not just C, use symbols that are different from those used in mathematics.

The use of operators is exactly the same as in mathematics.
The following program is an example of using all the operators introduced here.

Source Code
`````` #include <stdio.h>

int main(void)
{
printf("%d\n", 10 + 3);
printf("%d\n", 10 - 3);
printf("%d\n", 10 * 3);
printf("%d\n", 10 / 3);
printf("%d\n", 10 % 3);
return 0;
}``````

The result of executing this program will be as follows

Execution Result
13
7
30
3
1

The part of this program I want you to focus on is.
The result of the 10/3 (10 divided by 3) calculation is shown as 3.
A calculator would normally display 3.333333333.
Here, any number is calculated as an integer, so the result is also an integer.

Note that the results of integer calculations are rounded down, not rounded off.
Because if you round to the nearest whole number, when you do the reverse calculation, quotient times the number to divide by, you get
This is because the result is inconsistently greater than the original number to be divided.

Cheap calculators and high-end calculators
In fact, this calculation is a handy way to distinguish between cheap calculators and high-end calculators.
Try calculating 10 ÷ 3 × 3 on your calculator.
On my high-end calculator, the number is 10, but on my cheap calculator, the number is 3.
A calculator at a 100 yen store displayed 9.99999999.
High-end calculators use calculation methods that minimize errors.

##### Complex expressions
It is not only simple expressions that can be computed in C.
Even more complex expressions can be calculated without problems.
The following program is an example of a formula to calculate the sum from 1 to 100.

source code
`````` #include <stdio.h>

int main(void)
{
printf("%d\n", (1 + 100) * 100 / 2);
return 0;
}``````

The result of executing this program will be as follows

Execution Result
5050

In C, precedence in mathematical expressions is the same as in mathematics.
Multiplication and division are computed before addition and subtraction.
When you want to change the order of precedence, the () is exactly the same as in mathematics.

However, in mathematics, {} is used for the double (), but not in C.
In C, the () symbol is used for any number of ().

Comment
COMMENT

Open the 💬 comment submission box