public class TestPrintf { public static void main(String[] args) { // leggi array di double double[] conto = fill_double(); // leggi la valuta System.out.print("Codice valuta (stringa): "); String s = Input.readLine(); // stampa incolonnata con totale printTot(conto,s); } public static void printTot (double[] a, String misura) { double tot = 0; for (int i = 0; i < a.length; i++) { // stringa di formato: "Elemento %3d: %7.2f %3s%n" // ci sono 4 specificatori di formato: // - %3d stampa come intero decimale con tre cifre // - %7.2f virgola mobile con 4 cifre, il punto e due decimali // - %3s stringa con tre caratteri // - %n ritorno a capo indipendente dalla piattaforma System.out.printf("Elemento %3d: %7.2f %3s%n",i,a[i],misura); tot = tot + a[i]; } System.out.printf("==========================%n"); System.out.printf(" Totale: %7.2f %3s%n",tot,misura); } public static double[] fill_double () { int n = 0; do { System.out.print("Dimensione array (compresa tra 1 e 999): "); n = Input.readInt(); } while (n<=0 || n>999); double[] array = new double[n]; for (int i = 0; i < n; i++) { System.out.printf("Dammi il double in posizione %3d: ", i); array[i] = Input.readDouble(); } return array; } } |