﻿ Exercise 6 - Learning C through Suffering
C language learned by suffering

### Exercise 6

##### fundamental knowledge

Q1-1
What functions are used to enter numbers from the keyboard?

Q 1-2
When using the above functions, what symbol do you put in front of the variable name?

What is the next program to compute?
Answer by judging from the process contents and variable names.

Q2-1
`````` #include <stdio.h>

int main(void)
{
int side, high, square;

scanf("%d,%d", &side, &high);
square = side * high / 2;
printf("%d\n", square);

return 0;
}``````

##### program writing

Q3-1
Create a program that displays a list of prices with 1, 3, 5, and 8 discounts when a fixed price is entered. The resulting amounts should be displayed as integers, but real numbers are also acceptable.

##### descriptive expression

Q4-1
In fact, the scanf function is rarely used in programs that require reliability.
Briefly explain why this is so.

Solution 1-1
scanf function

*Note that there are many other similar functions that have not yet been introduced.

Solution 1-2
&

Solution 2-1
The program calculates the area of a triangle.
The variable names (side, height, area) and the processing details (side x height / 2) indicate this.

If you can somehow guess the reason, even if you cannot give a specific reason, we will assume that you are correct.
*This may have been a bit of a difficult problem.
However, if you want to continue with the program, you will always be required to read programs written by others.
Good luck trying to read the program, not only for what it does, but for what it's intended to do!
##### Program writing (example of solution)

Q3-1
`````` #include <stdio.h>

int main(void)
{
int price;

printf("Please enter the list price : ");
scanf("%d", &price);

printf("1 discount = %d yen\n", (int)(price * 0.9));
printf("3 discount = %d yen\n", (int)(price * 0.7));
printf("5 discount = %d Yen\n", (int)(price * 0.5)); printf("5 discount = %d Yen\n", (int)(price * 0.5))
printf("8 discount = %d yen\n", (int)(price * 0.2));

return 0;
}``````

Execution Result
Please enter the list price : 198
1 discount = 178 yen
3 discount = 138 yen
5 discount = 99 yen
8 discount = 39 yen

*I'm assuming here that one discount is 0.9x, but if you want to make it clear that it's one discount, you can use
(int)(price * (1 - 0.1)) to make it more like 1 discount.
*A variable can be created and assigned for each discount.
*The result may be a real number.
*The results may differ slightly depending on the calculation method, but if the calculation method is correct, it is considered correct.
Note that it is easy to forget the & that is attached to a variable in the scanf function.

Solution 4-1
The scanf function is not capable of checking for input errors.

Comment
COMMENT

Open the 💬 comment submission box