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

  1. SypayV Messages postés 7400 Date d'inscription   Statut Contributeur Dernière intervention   460
     
    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
  2. 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