Fusionner deux tableaux

Résolu
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. 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. 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)
      1. 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
        1. 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
          1. 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
            1. 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 ?
          2. 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;
            	   
               }
               }
            
            1. 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;
              	        
              	   }
              }