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

About Suresh

Suresh is the founder of TutorialGateway and a freelance software developer. He specialized in Designing and Developing Windows and Web applications. The experience he gained in Programming and BI integration, and reporting tools translates into this blog. You can find him on Facebook or Twitter.