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. 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;
    	        
    	   }
    }
    
    
    1. 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. 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. 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 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. 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. 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).