Fusionner deux tableaux [Résolu/Fermé]

Signaler
-
 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

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

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

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)
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
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
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
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 ?
merci beaucoup
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;
	   
   }
   }
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;
	        
	   }
}