Java.lang.ArrayIndexOutOfBoundsException: 3

domxaline -  
 domxaline -
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 7399 Statut Contributeur 449
 
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
domxaline
 
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