Pages: [1]   Go Down
Print
Author Topic: Problema con l'esercizio dei vettori a e b invertiti  (Read 957 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
SSInfo
Matricola
*
Offline Offline

Posts: 7


« on: 09-11-2012, 12:49:42 »

Sto cercando di fare l'esercizio su i due array che il prof ha dato nell'ultima lezione,
Code:
import javax.swing.*;
public class prog
     {
    public static void main (String [] args)
    {
    String n1;
    int n, i, k;
   
    n1=JOptionPane.showInputDialog("Digita Un Numero Intero");
    n=Integer.parseInt(n1);
    int [] a = new int [n];
    int [] b = new int [n];
    i=0;
    k=0;
    while(i<n)
       {
   n1=JOptionPane.showInputDialog("Numeri dentro l'array");
           a[i]=Integer.parseInt(n1);
   i++;
       }
    while (k!=n)
        {
  b[k]=a[i];
  System.out.println ("A= " + a[i] + " B= " + b[i]);
  k++;
                           i--;
 }
             System.exit(0);
}

durante la compilazione non ho nessun problema ma quando faccio partire il programma arriva questo avviso legato alla parte finale del programma

Code:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3

per favore se capite più o meno cosa ho sbagliato avvisatemi =)
grazie mille!!
« Last Edit: 09-11-2012, 16:05:03 by SSInfo » Logged
Gpeppe69
Apprendista Forumista
**
Offline Offline

Posts: 294



« Reply #1 on: 09-11-2012, 13:12:27 »

l'eccezione che ha generato succede quando inserisci più valori in un array che ne può contenere di meno di quelli cha hai inserito, prova a combiare l'ultimo while (k<n) ;
Logged
SSInfo
Matricola
*
Offline Offline

Posts: 7


« Reply #2 on: 09-11-2012, 14:29:04 »

sicuramente ci sarà un errore logico perché ho provato a cambiarlo diverse volte, spostando anche la stampa in un altro ciclo while ma non riesce proprio, magari provo a cambiare direttamente il ciclo così vedo se la mia ipotesi è corretta
Logged
matteobuffa
Administrator
Apprendista Forumista
*****
Offline Offline

Gender: Male
Posts: 258


Why so serious?


« Reply #3 on: 09-11-2012, 15:13:28 »

Se "i" parte da zero, al primo decremento diventa -1 e "k" non deve arrivare ad n, ma ad n-1 dato che l'indicizzazione e' zero-based.

PS "Aiutatemi per favore", non e' un titolo. Cortesemente vai a leggere il regolamento del forum per capire anche come scrivere titoli che siano piu' comprensibili.

Matteo
Logged

SSInfo
Matricola
*
Offline Offline

Posts: 7


« Reply #4 on: 09-11-2012, 16:28:07 »

Scusami per il titolo comunque ho provato la qualsiasi: cambiando le condizioni,  facendo decrementare "k" invece di "i" ma da sempre lo stesso errore, ho provato anche un'altra variante e riesce a stampare tanti zeri invece di stampare i numeri posti inversamente e quindi sono sempre più sicuro che la parte errata e l'istruzione inserita dentro il while.
Logged
Frank the reaper
Matricola
*
Offline Offline

Posts: 31


« Reply #5 on: 09-11-2012, 16:33:16 »

Scusate, ma non ero a lezione... potreste scrivere la consegna completa dell'esercizio, per favore?
Logged
matteobuffa
Administrator
Apprendista Forumista
*****
Offline Offline

Gender: Male
Posts: 258


Why so serious?


« Reply #6 on: 09-11-2012, 17:05:02 »

Scusami per il titolo comunque ho provato la qualsiasi: cambiando le condizioni,  facendo decrementare "k" invece di "i" ma da sempre lo stesso errore, ho provato anche un'altra variante e riesce a stampare tanti zeri invece di stampare i numeri posti inversamente e quindi sono sempre più sicuro che la parte errata e l'istruzione inserita dentro il while.

Posta le specifiche dell'esercizio 

Matteo
Logged

Pages: [1]   Go Up
Print
Jump to: