Java.lang.ArrayIndexOutOfBoundsException: 3

Fermé
domxaline - Modifié par Chris 94 le 19/01/2016 à 13:54
 domxaline - 19 janv. 2016 à 09:53
Bonjour,
En exécutant mon programme, ce dernier me donne que un seul éléments inversé:

Entrez le nb du tableau:3
Entrez l'élément 1:4
Entrez l'élément 2:5
Entrez l'élément 3:6
Vous avez rentré les numéros suivantes:
4.5.6.
Après l'inversion les numéros sont:
6

veuillez m'aidez s'il vous plaît

import java.util.Scanner;
public class Somme 
{
 public static void main(String[] args) 
 {
  int i;
  int n=0;
  Scanner sc=new Scanner(System.in);
  System.out.print("Entrez le nb du tableau:");
  int nb=sc.nextInt();
  int tab[]=new int[nb];
  for(i=0;i<nb; i++)
  {
   System.out.print("Entrez l'élément "+(i+1)+":");
   tab[i]=sc.nextInt();
  }
  System.out.println("Vous avez rentré les numeros suivantes:");
  for(i=0;i<nb;i++)
  {
   System.out.print(tab[i]+"."); 
  }
  int moi=Test(tab,n);
  System.out.println(moi);
  
 }
 public static int Test(int[]tab,int n)
 {
  System.out.println("\nAprès l'inversion les numéros sont:");
  int i=0;
  n=tab.length-1;
  for(i=0; i<n; i++)
  {
   int temp=tab[i];
   tab[i]=tab[n-i];
   tab[n-i]=temp;
   //System.out.print(tab[i]+".");  
  }
  int moi=tab[n-i];
  return(moi);
 } 
    } 


2 réponses

SypayV Messages postés 6583 Date d'inscription vendredi 28 décembre 2007 Statut Contributeur Dernière intervention 19 février 2023 449
19 janv. 2016 à 09:43
Bonjour,

int moi=Test(tab,n);

Doit être
int moi=Test(tab,nb);


Puisque n n'est pas utilisé dans le main et est égal à 0.
0
toujours pareil
 int moi=Test(tab,nb);
  System.out.println(moi);
  
 }
 public static int Test(int[]tab,int nb)
 {
  System.out.println("\nAprès l'inversion les numéros sont:");
  int i=0;
  nb=tab.length-1;
  for(i=0; i<nb; i++)
  {
   int temp=tab[i];
   tab[i]=tab[nb-i];
   tab[nb-i]=temp;
  }
  int moi=tab[nb-i];
  return(moi);
 } 
    } 
0