Go Program to Find Largest and Smallest Number in an Array

Write a Go Program to Find Largest and Smallest Number in an Array using For loop. First, we assigned the first array item to both the largest and smallest value (largest := lgsmArr[0] and smallest := lgsmArr[0]). Within the for loop (for i = 0; i < lgsmsize; i++), we used two if conditions. The first one (if largest < lgsmArr[i]) finds the largest array item and its index position. The second if statement (if smallest > lgsmArr[i]) finds the smallest array number and its index position.

package main

import "fmt"

func main() {
    var lgsmsize, i, minPosition, maxPosition int

    fmt.Print("Enter the Array Size to find Smallest & Largest = ")
    fmt.Scan(&lgsmsize)

    lgsmArr := make([]int, lgsmsize)

    fmt.Print("Enter the Array Items  = ")
    for i = 0; i < lgsmsize; i++ {
        fmt.Scan(&lgsmArr[i])
    }
    largest := lgsmArr[0]
    smallest := lgsmArr[0]

    for i = 0; i < lgsmsize; i++ {
        if largest < lgsmArr[i] {
            largest = lgsmArr[i]
            maxPosition = i
        }
        if smallest > lgsmArr[i] {
            smallest = lgsmArr[i]
            minPosition = i
        }
    }
    fmt.Println("\nThe Largest Number in this lgsmArr    = ", largest)
    fmt.Println("The Index Position of Largest Number = ", maxPosition)
    fmt.Println("\nThe Smallest Number in this lgsmArr    = ", smallest)
    fmt.Println("The Index Position of Smallest Number = ", minPosition)
}
Enter the Array Size to find Smallest & Largest = 5
Enter the Array Items  = 20 80 70 10 60

The Largest Number in this lgsmArr    =  80
The Index Position of Largest Number =  1

The Smallest Number in this lgsmArr    =  10
The Index Position of Smallest Number =  3

Go Program to Find Largest and Smallest Number in an Array using For Loop Range

package main

import "fmt"

func main() {
    var lgsmsize, i, minPosition, maxPosition int

    fmt.Print("Enter the Array Size to find Smallest & Largest = ")
    fmt.Scan(&lgsmsize)

    lgsmArr := make([]int, lgsmsize)

    fmt.Print("Enter the Array Items  = ")
    for i = 0; i < lgsmsize; i++ {
        fmt.Scan(&lgsmArr[i])
    }
    largest := lgsmArr[0]
    smallest := lgsmArr[0]

    for i, lgsm := range lgsmArr {
        if largest < lgsm {
            largest = lgsm
            maxPosition = i
        }
        if smallest > lgsm {
            smallest = lgsm
            minPosition = i
        }
    }
    fmt.Println("\nThe Largest Number in this lgsmArr   = ", largest)
    fmt.Println("The Index Position of Largest Number = ", maxPosition)
    fmt.Println("\nThe Smallest Number in this lgsmArr   = ", smallest)
    fmt.Println("The Index Position of Smallest Number = ", minPosition)
}
Go Program to Find Largest and Smallest Number in an Array 2

In this Golang program, we created two separate functions that return the largest (larestNum(lgsmArr []int)) and smallest (smallestNum(lgsmArr []int)) numbers within a given array and their index positions.

package main

import "fmt"

var largest, minPosition, maxPosition, smallest int

func larestNum(lgsmArr []int) (int, int) {
    largest = lgsmArr[0]
    for i, lg := range lgsmArr {
        if largest < lg {
            largest = lg
            maxPosition = i
        }
    }
    return largest, maxPosition
}

func smallestNum(lgsmArr []int) (int, int) {
    smallest = lgsmArr[0]
    for i, sm := range lgsmArr {
        if smallest > sm {
            smallest = sm
            minPosition = i
        }
    }
    return smallest, minPosition
}

func main() {
    var lgsmsize, i, minPosition, maxPosition int

    fmt.Print("Enter the Array Size to find Smallest & Largest = ")
    fmt.Scan(&lgsmsize)

    lgsmArr := make([]int, lgsmsize)

    fmt.Print("Enter the Array Items  = ")
    for i = 0; i < lgsmsize; i++ {
        fmt.Scan(&lgsmArr[i])
    }
    largest, maxPosition = larestNum(lgsmArr)
    smallest, minPosition = smallestNum(lgsmArr)

    fmt.Println("\nThe Largest Number in this lgsmArr   = ", largest)
    fmt.Println("The Index Position of Largest Number = ", maxPosition)
    fmt.Println("\nThe Smallest Number in this lgsmArr   = ", smallest)
    fmt.Println("The Index Position of Smallest Number = ", minPosition)
}
Enter the Array Size to find Smallest & Largest = 8
Enter the Array Items  = 10 30 70 9 33 89 120 14

The Largest Number in this lgsmArr   =  120
The Index Position of Largest Number =  6

The Smallest Number in this lgsmArr   =  9
The Index Position of Smallest Number =  3