Chapter 8 - Structs
Exercise 1: Defined Types and Structs
Let’s create a struct type named
rectangle, that represents rectangular areas. It should have
width fields, both of type
Also create a
rectangleInfo function that accepts a
rectangle as a parameter.
rectangleInfo should print
"Length:" followed by the rectangle’s length, then
"Width:" followed by the rectangle’s width.
Finally, in your
main function, create a new
rectangle value, and set its
width fields. Then pass the
rectangleInfo to display its field values.
Length: 4.2 Width: 2.3
When you’re ready, have a look at our solution.
Exercise 2: Modifying Structs from Functions
All squares are rectangles, but not all rectangles are squares… Let’s define a
makeSquare function that takes a
rectangle and “cuts it down” so that its longer sides are equal to its shorter sides.
- If the
lengthis greater than its
width, set its
lengthequal to its
- Otherwise, set the
widthequal to the
makeSquare won’t return a value; it should modify the
rectangle it receives (meaning it will need to accept a pointer to a
rectangle and modify the value at that pointer).
main, create a couple different
rectangle values, one where the
length is greater and one where the
width is greater, and try converting them to squares using
Here’s our solution.