Considerazioni di massima:
1) l'input da tastiera si usa in un numero ESTREMAMENTE piccolo di casi, e fondamentalmente in quei programme i quali, una volta mandati in esecuzione, interagiscono con l'utente E con qualche altro programma. Un classico esempio e' il debugger in modalita' testo, usato per analizzare il comportamento dei programmi scritti in C/C++/fortran, OPPURE le shell come ipython, scala, bash, ecc, che eseguono il comando all'istante e poi si mettono in attesa del prossimo comando
Nel rimanente 99.99999% dei casi i parametri necessari al programma si passano SULLA LINEA DI COMANDO singolarmente o mediante un file di configurazione. Questo perche' permette di AUTOMATIZZARE l'utilizzo del programma in eventuali script.
2) l'inizializzazione delle variabili e' una pratica BUONA E GIUSTA che vale la pena seguire per AUTOMATIZZARE una serie di regole di scrittura che porterebbero a PROBLEMI non indifferenti se non seguite.
Il problema a monte e' il seguente: un programma non si scrive una volta sola, ma si modifica un'infinita' di volte, spostando codice, aggiungendolo, rimuovendolo. Se AL MOMENTO l'inizializzazione sembra inutile perche' nella riga successiva la variabile viene inizializzata mediante un'altro meccanismo, questo NON ASSICURA che nel futuro quella linea di codice non venga modificata o spostata. E magari viene spostata 100 linee piu' in basso ed uno si dimentica di controllare se quella particolare variabile e' stata o meno inizializzata.
Quello che potrebbe succedere, inoltre, e' che una variabile NON INIZIALIZZATA venga utilizzata e (s)fortuna vuole che abbia un valore PLAUSIBILE. Questo fa si che il programma non vada in errore, MA i risultati potrebbero essere SBALLATI, ma non cosi' sballati da risultare errati. I disastri potrebbero essere difficili da identificare.
Pensa al casino che e' avvenuto con la sonda Mars Climate Orbiter che si e' schiantata perche' dei programmatori "sciocchi" (userei termini ben piu' coloriti) hanno usato come unita' di misura le unita' inglesi!
https://spazio-tempo-luce-energia.it/lerrore-da-328-milioni-di-dollari-dde082a1b70b?gi=99e37b4d270d
Dirai: che centra con l'inizializzazione? Niente, o meglio centra con il fatto di USARE SEMPRE BUONE TECNICHE DI PROGRAMMAZIONE per tutte le cose banali, anche se inutili.
Qundi, e' ESTREMAMENTE BUONA PRATICA inizializzare SEMPRE TUTTE LE VARIBILI, anche se vengono inizializzate 2 o piu' volte.
Tieni anche presente che i compilatori sono sufficientemente intelligenti da accorgersi della doppia inizializzazione e quindi fare le ottimizzazioni del caso.