![]()
questo programma prende in input una sequenza di interi,memorizzandola in un array, e ne calcola la somma ad elementi alterni.
Cioè: input->{1,4,9,16,9,7,4,9,11} output è -> 1-4+9-16+9-7+4-9+11 = -2
questo è quello che ho fatto ma in output ho sempre 0.
codice:public class Somma { public Somma() { sum = 0; asum = 0; } public void sumAlternate(int n) { int[] array = new int[n]; for(int i=1;i<array.length;i+=2) { for(int j=0;j<array.length;j+=2) asum = array[i] - array[j]; } } public int getSumAlternate() { return asum; } public void sumNormal(int n) { int[] array = new int[n]; for(int i=0;i<array.length;i++) { sum = sum + array[i]; } } public int getSumNormal() { return sum; } private int sum; private int asum; }Il programma funziona senza l'inserimento da tastiera dei numeri, cioè senza la classe Somma ma solo con la classe SommaTest.Infatti il metodo sumAlternate contiene la procedura che ho testato e funziona solo con il main.codice:import java.util.Scanner; public class SommaTest { /** * Programma che effettua la somma ad elementi alterni. */ public static void main(String[] args) { Scanner in = new Scanner(System.in); Somma sum = new Somma(); System.out.println("Inserisci dei numeri interi(Max 10)"); boolean done = false; while(!done) { System.out.println("Premi Q per terminare."); String input = in.next(); if(input.equalsIgnoreCase("Q")) done = true; else { int a = Integer.parseInt(input); sum.sumAlternate(a); sum.sumNormal(a); done = false; } } System.out.println("La somma normale è: "+ sum.getSumNormal()); System.out.println("La somma alternata è: "+ sum.getSumAlternate()); } }
Perchè adesso non va più?![]()
Grazie a tutti per una risposta![]()
![]()

Rispondi quotando