Small Steps III — Thinking with Programs

Remembering the largest value so far

Remember the largest value seen so far.

What you will learn

Finding a maximum means remembering the largest value seen so far and replacing it when a larger one appears.

Try it

Example · example1.cpp
void small_main()
{
    Array<int> numbers = {7, 2, 9, 4, 5};
    int largest = numbers[0];

    for (int i = 1; i < numbers.length(); i = i + 1)
        if (numbers[i] > largest)
            largest = numbers[i];

    print("Largest: ", largest);
}

Start with the first element, 7. 2 is smaller, so nothing changes; 9 is larger, so it replaces the remembered value. The result is Largest: 9.

Starting at 0 may be wrong when all values are negative. This example uses an array with at least one element.

Exercise

Find and print the smallest value in the Array.

Exercise starter · exercise1_starter.cpp
void small_main()
{
    Array<int> numbers = {8, -3, 5, 2, -1};

    // find and print the smallest value.
}

Hint

Use the first value as smallest and compare from index 1 onward.

show solution
void small_main()
{
    Array<int> numbers = {8, -3, 5, 2, -1};
    int smallest = numbers[0];

    for (int i = 1; i < numbers.length(); i = i + 1)
        if (numbers[i] < smallest)
            smallest = numbers[i];

    print(smallest);
}
← Previous lessonNext lesson →