Fusion tableau(java)

Bonjour,
salut j'ai fait un exercice de fusion de 2tableau en java mais ça n'a pas marcher
s'il vous plait que quelqu'un corrige ma solution

package fusion.tableau;
import java.util.*;

public class FusionTableau {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
//declaration
int tab1[],tab2[],i,j,T,tab3[];
//la taille de tab1
System.out.println("entré la taille du tableau1");
T = scan.nextInt();
//declaration de tab 1
tab1 = new int[T];
//remplissage
for(i = 0;i<tab1.length;i++){
System.out.println("entré l'element"+(i+1) );
tab1[i] = scan.nextInt();
}
//affichage
for(i=0;i<tab1.length;i++){
System.out.println("l'élément"+":"+tab1[i]+"\n");
}
//taille de tab2
System.out.println("entré la taille du tableau2");
T = scan.nextInt();
//declaration de tab 2
tab2 = new int[T];
//remplissage
for(i=0;i<tab2.length;i++){
System.out.println("entré l'élément"+(i+1));
tab2[i] = scan.nextInt();
//affichage
}
for(i=0;i<tab2.length;i++){
System.out.println("l'element"+":"+tab2[i]+"\n");
}
tab3 = new int[T];
for(i=0;i<T;i++)
{
tab3=tab1;
}
for(j=0;j<T;j++)
{
tab3=tab2;
}
System.out.println(tab3);
}
}

1 réponse

  1. Modérateur
    Il faut que tu divises ton code, pour avoir une méthode pour rentrer les données, une autre pour faire la fusion, enfin une dernière pour afficher le résultat.
    On ne mets jamais tout dans le main !

    public class FusionTableau
    {
        public static int[] lire();
        public static int[] fusionner(int[] tab1, int[] tab2);
        public static void afficher();
    
        public static void main(String...args)
        {
            int[] tab1 = lire();
            int[] tab2 = lire();
            int[] tab3 = fusionner(tab1,tab2);
            afficher(tab3);
        }
    }

    Organises ton code comme ça, mets des commentaires sur ce que font chaque ligne (ce qu'elles sont censés faire au moins), ce sera beaucoup plus simple à relire et à recorriger.
    Et si tu n'y arrives toujours pas, colles ton nouveau code, sans oublier les balises de code pour conserver l'indentation (le bouton est à côté des boutons gras, italique, souligné)
    1. je crois qu'ont peut met tous dans une main ,et ton idée veut dire que je doit appliquer les constructeurs mais c'est difficile
      et a propos des commentaire
      j'ai mis les commentaire les plus nécessaire
    2. Modérateur
      "je doit appliquer les constructeurs"
      Non pas besoin de constructeur, toutes les méthodes que j'ai mises sont static. Le main tu ne devrais pas avoir à le modifier (et il n'y a pas de new donc pas de constructeur !)

      "On peut tout mettre dans le main"
      Oui, mais non. Ce n'est pas propre. Voir que tu fais copier-coller pour remplir ton tableau1 puis ton tableau2, c'est vraiment horrible. Heureusement qu'on ne t'as pas demander de fusionner 15 tableaux ! Moi si je dis ça c'est parce que c'est beaucoup plus simple à lire et à corriger.

      "j'ai mis les commentaire les plus nécessaire"
      Mauvaise habitude ! Plus tu mets de commentaires mieux c'est. Là encore ça t'aidera à corriger...
    3. j'ai compris si notre code est top gros c'est catastrophique mais pas mal , fusion de 2 tableau
    4. malheureusement c'est tout ce que je sais si vous avez une autre solution aide moi s'il vous plait