Page under construction!!

Esercizio: Conta massimo

Si vuole scrivere un programma che legga una sequenza di 10 interi positivi e stampi il massimo intero letto e quante volte il massimo compare nella sequenza.

Per individuare il massimo intero usiamo il piano per la ricerca del valore estremo, usando il primo numero in input per inizializzare la variabile max fuori dal ciclo. Per calcolare quante volte questo valore compare nella sequenza usiamo il piano per il conteggio. I due piani sono mostrati in questi frammenti di codice:

fmt.Scan(&numero)
max := numero

for i := 1; i < 10; i++ {
    fmt.Scan(&numero)
    if numero > max {
        max = numero
    }
}
count := 0
for i := 0; i < 10; i++ {
    fmt.Scan(&numero)
    if numero == n {
        count++
    }
}

Come già visto per altri casi, non è possibile combinare questi piani mettendoli semplicemente uno dopo l’altro (a meno di salvare inutilmente tutti i dati in input), perché il piano per la ricerca del massimo “consumerebbe” i numeri letti prima dell’inizio del piano di conteggio.

È possibile invece fondere i due piani in un unico ciclo. Tuttavia in questa fusione di piani è necessario prestare attenzione ad alcuni aspetti critici, che dipendono dalla relazione che lega i due goal del problema.

Completate il programma seguente inserendo, nell’ordine corretto, le istruzioni che trovate in fondo.

package main

import "fmt"

func main() {
    var numero, i int
    fmt.Scan(&numero)
    max := numero

    ...

    fmt.Println(max)
    fmt.Println(count)
}
}
if numero == max {
for i := 1; i<10; i++ {
count++
max = numero
count = 1
count := 1
fmt.Scan(&numero)
} else if numero > max {
}