Fusionner deux tableaux

Résolu
domxaline -  
 domxaline -
Bonjour,
je veux fusionner deux tableaux
quand je l'éxecute mon prg
il me donne un résultat bizarre
output est la suivante:
8|8|8|8|8|8|8|8|8|9|9|9|9|9|9|9|9|9|10|10|10|10|10|10|10|10|10|11|11|11|11|11|11|11|11|11|12|.....
veuillez m'aidez svp
public class Fusion 
{
 public static void main(String[] args) 
 {
  int tab[]={2,3,4,5};
  int tab1[]={6,7,8,9,10};
  int tab2[]=new int [9];
  int k=0;
  
  for(int i=0;i<tab.length;i++)
  {
   for(int j=0;j<tab1.length;j++)
   {
    for(k=0;k<(tab.length+tab1.length);k++)
    {
     tab2[k]=tab[i]+tab1[j];
     System.out.print(tab2[k]+"|");
    }
   }
   
  }
 }
}



8 réponses

  1. Utilisateur anonyme
     
    public class Fusion 
    {
     public static void main(String[] args) 
     {
      int tab[]={2,3,4,5};
      int tab1[]={6,7,8,9,10};
      int tab2[]=new int [9];
      int cpt = 0;
      
      for(int i=0;i<tab.length;i++)
      {
       for(int j=0;j<tab1.length;j++)
       {
         tab2[cpt]=tab[i]+tab1[j];
         System.out.print(tab2[cpt]+"|");
         cpt++;
       }
       
      }
     }
    }
    


    La boucle avec "k" recopie le résultat que tu souhaites autant de fois que la longueur de tab et tab1 additionnée (inutile).
    1
  2. domxaline
     
    merci pour votre aide.
    mais j'ai une exception en l'exécutant,
    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 9
    at Fusion.main(Fusion.java:14)
    0
  3. domxaline
     
    j'ai changé élément dans la ligne suivante
    int tab2[]=new int[50];


    et je l'ai exécuté, et j'ai eu le résultat suivante.
    8|9|10|11|9|10|11|12|10|11|12|13|

    il additionne seulement
    6+tab1
    7+tab1
    8+tab1

    restant tab2 9 et 10 additionne pas
    veuillez m'aidez svp
    0
  4. domxaline
     
    ok j'ai réglé mon pb

    public class Fusion
    {
    public static void main(String[] args)
    {
    int tab[]={2,3,4,5};
    int tab1[]={6,7,8,9,10};
    int tab2[]=new int[20];
    int cpt=0;
    int i=0;
    for(i=0;i<tab.length;i++)
    {
    for(int j=0;j<tab1.length;j++)
    {
    tab2[cpt]=tab[i]+tab1[j];
    System.out.print(tab2[cpt]+"|");
    cpt++;
    }
    }
    }
    }

    merci beaucoup
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. domxaline
     
    j'ai encore une question
    une fois que la premier parti addition affiché je veux que la deux parti doit s'afficher à la ligne suivante ainsi de suite.
    veut dire que je veux que comme suivant:
    8|9|10|11|
    12|9|10|11|
    12|13|10|11|
    12|13|14|11|
    12|13|14|15|

    quelqu'un peut m'aider svp
    0
    1. Utilisateur anonyme
       
      public class Fusion 
      {
      	public static void main(String[] args) 
      	{
      		int tab[]={2,3,4,5};
      		int tab1[]={6,7,8,9,10};
      		int tab2[]=new int[20];
      		int cpt=0;
      		int i=0;
      		for(i=0;i<tab.length;i++)
      		{
      		  for(int j=0;j<tab1.length;j++)
      		  {
      			tab2[cpt]=tab[i]+tab1[j];
      			System.out.print(tab2[cpt]+"|");
      			cpt++;
      		  }
                      System.out.print("\n"); // seule ligne ajoutée
      		}
      	}
      }
      


      c'est ça ?
      0
  7. domxaline
     
    bonjour
    j'ai un souci pendant l'exécution de mon programme.
    je l'ai écrit en méthode et je l'appel de la main,ce dernier me donné une résultat avec un zéro à la fin
    veuillez m'aidez svp
    voilà mon résultat:
    8.9.10.11.12.
    9.10.11.12.13.
    10.11.12.13.14.
    11.12.13.14.15.
    0.

    <souligne>voilà mon programme:</souligne
    public class Fusion1 
    {
    	public static void main(String[] args) 
    	{
    		int tab2[]=new int[20];
    		int cpt=0;
    		int tab3=0;
    		int Test=fus(tab3);
    		System.out.print(tab2[cpt]+".");
    	}
       public static int fus(int tab3)
       {
    	   int tab[]={2,3,4,5};
    		int tab1[]={6,7,8,9,10};
    		int tab2[]=new int[20];
    		int cpt=0;
    		int i=0;
    		for(i=0;i<tab.length;i++)
    		{
    		  for(int j=0;j<tab1.length;j++)
    		  {
    			tab2[cpt]=tab[i]+tab1[j];
    			System.out.print(tab2[cpt]+".");
    			cpt++;
    		  }
                   System.out.print("\n"); // seule ligne ajoutée
    		} 
    	 return tab3;
    	   
       }
       }
    
    0
  8. domxaline
     
    ok, j'ai corrigé mon prg mais toujours la pb d'affichage
    la résultat s'affiche en une ligne,mais je veux que comme suivant:
    8.9.10.11.12.
    9.10.11.12.13.
    10.11.12.13.14.
    11.12.13.14.15.

    j'ai essayé cette ligne:
    System.out.print("\n"); // seule ligne ajoutée

    mais rien n'est changé
    public class Fusion1 
    {
    	public static void main(String[] args) 
    	{
    		int tab2[]=fus();
    		for(int i=0;i<tab2.length;i++)
    		{
    			System.out.print(tab2[i]+".");
    			//System.out.println("\n"); // seule ligne ajoutée
    		}
    		//System.out.println("\n"); // seule ligne ajoutée
    	}
    	
    	public static int[] fus()
    	   {
    	        int tab[]={2,3,4,5};
    	        int tab1[]={6,7,8,9,10};
    	        int tab2[]=new int[20];
    	        int cpt=0;
    	        int i=0;
    	        for(i=0;i<tab.length;i++)
    	        {
    	          for(int j=0;j<tab1.length;j++)
    	          {
    	            tab2[cpt]=tab[i]+tab1[j];
    	            cpt++;
    	          }
    	          //System.out.println("\n"); // seule ligne ajoutée
    	        }
    	     return tab2;
    	        
    	   }
    }
    
    
    0