Write a Go Program to Find the Largest and Smallest Number in an Array using the For loop. First, we assigned the first array item to both the largest and smallest values (largest := lgsmArr[0] and smallest := lgsmArr[0]). We used two if conditions within the for loop (for i = 0; i < lgsmsize; i++).
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)
}

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