IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

Mon tableau a plus d'éléments


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Par défaut Mon tableau a plus d'éléments
    après avoir exécuté mon prg, que j'ai constaté il ya plusieurs fois
    cette ligne suivante :
    "L’addition de chaque élément de ces 2 tableaux sont: 0+0 = 0"
    quelqu'un peut aider svp
    voilà mon prg:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    import java.util.Scanner;
    public class Divers 
    { 
       public static void main(String[]args)
       {
           int tab1[]=new int [100];
           int tab2[]=new int [100];
           int[] tab3={};   
           Scanner sc=new Scanner(System.in);
           System.out.println("Entrez le nb d'éléments de 1er tableau:");
           int n=sc.nextInt();
           for(int i=0;i<n;i++)
           {
            System.out.println("Entrez l'élément n°"+(i+1)+"" +" du tableau:"); 
            tab1[i]=sc.nextInt();
           }
           System.out.println("Entrez le nb d'éléments de 2eme tableau");
           int m=sc.nextInt();
           for(int i=0;i<m;i++)
           {
            System.out.println("Entrez l'élément n°"+(i+1)+" du tableau:"); 
            tab2[i]=sc.nextInt();
           }
         int somme=0;
         for(int i=0;i<tab1.length;i++)
         {
          for(int j=0; j<tab2.length;j++) 
          {
            somme=tab1[i]+tab2[i]; 
          }
          System.out.println("L'addtion de chaque élément de ces 2 tableaux sont: "+tab1[i]+"+"+tab2[i]+" = "+somme);
         }
           }
     }
    voilà mon output:
    Entrez le nb d'éléments de 1er tableau:
    3
    Entrez l'élément n°1 du tableau:
    4
    Entrez l'élément n°2 du tableau:
    5
    Entrez l'élément n°3 du tableau:
    6
    Entrez le nb d'éléments de 2eme tableau
    3
    Entrez l'élément n°1 du tableau:
    7
    Entrez l'élément n°2 du tableau:
    8
    Entrez l'élément n°3 du tableau:
    9
    L'addtion de chaque élément de ces 2 tableaux sont: 4+7 = 11
    L'addtion de chaque élément de ces 2 tableaux sont: 5+8 = 13
    L'addtion de chaque élément de ces 2 tableaux sont: 6+9 = 15
    L'addtion de chaque élément de ces 2 tableaux sont: 0+0 = 0
    ..................................................................................
    .................................................................................
    L'addtion de chaque élément de ces 2 tableaux sont: 0+0 = 0

  2. #2
    Membre Expert
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Par défaut
    Reprenons la fin formatée correctement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    		int somme = 0;
    		for (int i = 0; i < tab1.length; i++) {
    			for (int j = 0; j < tab2.length; j++) {
    				somme = tab1[i] + tab2[i];
    			}
    			System.out.println("L'addtion de chaque élément de ces 2 tableaux sont: "
    							+ tab1[i] + "+" + tab2[i] + " = " + somme);
    		}
    En gros, on fait

    On rentre dans le premier for et pour chaque élément dans le tableau tab1
    i vaut 0
    on rentre dans la boucle et on calcule le nombre de fois qu'il y a d'éléments dans tab2 la somme de tab1[0] + tab2[0] (??? Je pense qu'il y a une première boulette ici)
    on affiche le résultat
    i++ et on recommence

    Ok... Sauf que au début, tu as ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    		int tab1[] = new int[100];
    		int tab2[] = new int[100];
    Tu vas donc toujours afficher 100 lignes ! (puisque la "taille" de tab1 fait 100)

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Par défaut
    comme vous avez dit j'ai corrigé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    int tab1[]=new int [5];
    int tab2[]=new int [5];
    int[] tab3={};
    j'ai 3 éléments supplémentaire vide,
    L'addtion de chaque élément de ces 2 tableaux sont: 3+7 = 10
    L'addtion de chaque élément de ces 2 tableaux sont: 4+8 = 12
    L'addtion de chaque élément de ces 2 tableaux sont: 0+0 = 0
    L'addtion de chaque élément de ces 2 tableaux sont: 0+0 = 0
    L'addtion de chaque élément de ces 2 tableaux sont: 0+0 = 0
    je veux éviter les éléments vide, je veux garder seulement éléments remplis,
    aidez moi svp.

  4. #4
    Membre Expert
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Par défaut
    Normal d'avoir 5 lignes vu qu'à la base tu déclares un tableau qui possède 5 éléments.

    Quand tu déclares un tableau, toutes les valeurs du tableau sont initialisées avec la valeur par défaut de la variable. Dans ton cas, un int tab[] = new int[5] correspond EXACTEMENT à écrire int tab[] = {0,0,0,0,0};
    En gros, tu as déjà un tableau rempli avec 5 éléments.

    Si tu veux pouvoir "jouer" avec un tableau à taille variable, tu ne pourras pas utiliser la notation [] qui impose de connaitre la taille du tableau initial. Enfin, pas comme tu le fais...

    Dans ton algo, commence par saisir le nombre l'éléments que tu veux dans ton premier tableau, stocke le dans une variable... Disons la variable "tailleTableau1"... Et ensuite, défini ton tableau d'entiers comme ceci :
    int tab1[] = new int[tailleTableau1];

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Par défaut
    Dans ton algo, commence par saisir le nombre l'éléments que tu veux dans ton premier tableau, stocke le dans une variable... Disons la variable "tailleTableau1"... Et ensuite, défini ton tableau d'entiers comme ceci :
    int tab1[] = new int[tailleTableau1];
    dans mon cas, ce l'utilisateur décide le nombre éléments qu'il veut rentré,regardez mon code svp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     Scanner sc=new Scanner(System.in);
    	      System.out.println("Entrez le nb d'éléments de 1er tableau :");
    	      int n=sc.nextInt();
    	      for(int i=0;i<n;i++)
    	      {
    	    	  System.out.println("Entrez l'élément n°"+(i+1)+"" +" du tableau:"); 
    	    	  tab1[i]=sc.nextInt();
    	      }

  6. #6
    Membre Expert
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Par défaut
    Oui, j'ai bien vu que c'est l'utilisateur qui décide du nombre d'éléments...

    Mais regardons à nouveau le début du code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    		int tab1[] = new int[5]; // définition de la taille du tableau 1
    		int tab2[] = new int[5];// définition de la taille du tableau 2
    		int[] tab3 = {};
    		Scanner sc = new Scanner(System.in);// définition du scanner
    		System.out.println("Entrez le nb d'éléments de 1er tableau:");
    		int n = sc.nextInt(); // récupération du nombre d'éléments du tableau
    		for (int i = 0; i < n; i++) { // début de la saisie des éléments
    		...
    Et si... on ne définissait les tableaux tab1 et tab2 qu'APRES que l'utilisateur ait saisi le nombre d'éléments du tableau? Juste avant qu'on ne commence à le remplir... En donnant comme taille des tableau la taille que l'utilisateur a saisi dans la variable n;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    		int[] tab3 = {};
    		Scanner sc = new Scanner(System.in);// définition du scanner
    		System.out.println("Entrez le nb d'éléments de 1er tableau:");
    		int n = sc.nextInt(); // récupération du nombre d'éléments du tableau
     
    		// faire la définition des tableaux ici avec la bonne taille
     
    		for (int i = 0; i < n; i++) { // début de la saisie des éléments
    		...

Discussions similaires

  1. plus grand élément dans un tableau
    Par shaku dans le forum Macros et VBA Excel
    Réponses: 27
    Dernier message: 09/04/2009, 20h28
  2. Réponses: 13
    Dernier message: 07/01/2007, 19h43
  3. Trouver le Kième plus petit élément d'un tableau
    Par katrena99 dans le forum Pascal
    Réponses: 10
    Dernier message: 15/11/2006, 23h36
  4. Réponses: 3
    Dernier message: 24/05/2006, 22h23
  5. Réponses: 3
    Dernier message: 16/12/2002, 16h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo