Somma array - problemi di logica

di il
4 risposte

Somma array - problemi di logica

Questo è il codice:

package a.java.com;
import java.util.*;

public class Progetto1 {

	public static void main(String[] args) {
		
		/*Scrivere un programma che legga degli interi, uno per riga, e visualizzi la loro somma. Deve visualizzare,
		 * inoltre, tutti i numeri letti, ognuno con un'annotazione che indichi il contributo percentuale alla somma.
		 * Utilizzare un metodo che prende come argomento un intero array e che restituisce la somma dei numeri nell'array
		 * Suggerimento: chiedere all'utente il nuero di interi che verranno inseriti, creare un array di quella lunghezza
		 * e poi riempierlo con gli interi letti. Ecco una possibile interazione tra il programma e l'utente.
		 * 
		 * Quanti numeri verranno inseriti?
		 * 4
		 * Inserire 4 interi, uno per riga:
		 * 2
		 * 1
		 * 1
		 * 2
		 * La somma è: 6
		 * I numeri sono:
		 * 2, che è il 33,333% della somma
		 * 1, che è il 16,666% della somma
		 * 1, che è il 16,666% della somma
		 * 2, che è il 33,333% della somma*/
		
		
		Scanner in = new Scanner(System.in);
		
		int [] conteggio; //Dichiara l'array di tipo intero
		
		System.out.println("Quanti numeri veranno inseriti ?");
		int dimensione = in.nextInt(); //Inserimento numeri interi
		conteggio = new int[dimensione]; //riempi l'array
		
		System.out.println("Inserire " + dimensione + " interi, uno per riga");
		
		int next = 0;
		
		for(int i= 0; i <= dimensione - 1; i++){
			next = in.nextInt();
			conteggio[i] = next;
		}
		
		int somma = 0;
		
		for(int i = 0; i <= conteggio.length; i++ ){ //calcola la somma nell'array
			somma = somma + conteggio[i];
		}
		
		System.out.println("La somma è: " + somma); //risultato somma
		System.out.println("I numeri sono:");
		
		double percentuale;
		
		for(int i = 0; i <= conteggio.length; i++){
			percentuale = conteggio[i] * 0.9;
			System.out.println(next + "che è il " + percentuale + " della somma");
		}
		

	}

}




Per quale motivo non mi funziona la somma e la percentuale, è in più non mi legge i numeri sull'ultimo for???

4 Risposte

  • Re: Somma array - problemi di logica

    robot ha scritto:


    Per quale motivo non mi funziona la somma e la percentuale, è in più non mi legge i numeri sull'ultimo for???
    Innanzitutto gli ultimi due for sono

    for(int i = 0; i <= conteggio.length; i++ )

    Quindi il "length" è incluso nel ciclo (<=) e quindi vai fuori dall'array causando eccezione.

    Poi non capisco quel
    percentuale = conteggio[i ] * 0.9;

    Il testo è chiaro: il contributo percentuale alla somma
    Quindi un valore i-esimo diviso la somma (ovviamente portando poi in percentuale)

    E nell'ultimo println usi next che lì non serve.
  • Re: Somma array - problemi di logica

    Ho risolto.
    Ma quando ho scritto questo codice:
    System.out.println(next + "che è il " + percentuale + " della somma");
    dove sta next, deve apparire i valori dell'input.
    Che cosa metto al posto di next???
  • Re: Somma array - problemi di logica

    robot ha scritto:


    dove sta next, deve apparire i valori dell'input.
    Che cosa metto al posto di next???
    Il valore i-esimo nell'array ... che lo stai già usando per la percentuale!
  • Re: Somma array - problemi di logica

    Risolto.
Devi accedere o registrarti per scrivere nel forum
4 risposte