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 :

[Débutant] connaître le max d'une valeur dans un tableau à deux dimensions


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut [Débutant] connaître le max d'une valeur dans un tableau à deux dimensions
    Bonsoir tout le monde,

    J'aimerais savoir quel est la valeur la plus grande dans un tableau à deux dimensions.


    Pour cela, j'ai créé le tableau en question, j'ai créé quelques variables :

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    public class MaximumTableau2Dimensions 
    {
    	public static void main (String[] args)
    	{
    		int tableau [][] = new int [5][5];
    		int maximum = 0;
     
     
    		for (int i = 0; i < tableau.length; i++)
    		{
    			for (int j=0; j < tableau.length; j++)
    			{
    				tableau[i][j] = (int) (Math.random()*20+1);
    			}
    		}
     
    		for (int i=0; i < tableau.length; i++ )
    		{
    			for (int j=0; j < tableau.length; j++)
    			{
    				System.out.print(tableau[i][j] + " ");
    			}
     
    		}
     
    		System.out.println();
     
     
     
     
    		for (int i=0; i < tableau.length; i++ )
    		{
    		if (tableau[i] > maximum )
     
    			maximum = tableau[i];
     
     
    			for (int j=0; j < tableau.length; j++)
    			{
    					if (tableau[j] > maxium)
    					maximum = tableau[j];
     
    		}
    		}
     
    		System.out.println();
     
    		//System.out.println("Le maximum vaux :" + maximum);
    	}
    }
    le problème vient de cette partie du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    for (int i=0; i < tableau.length; i++ )
    		{
    		if (tableau[i] > maximum )
     
    			maximum = tableau[i];
     
     
    			for (int j=0; j < tableau.length; j++)
    			{
    					if (tableau[j] > maxium)
    					maximum = tableau[j];
     
    		}
    		}
    Voici les messages d'erreur :

    operator > cannot be applied to int[].int
    incompatible types
    cannot resolve symbol variable maximum
    incompatible types
    Qu'en pensez-vous ?

    Merci d'avance pour vortre aide.

    beegees

  2. #2
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    D'abord ta condition d'arrêt de la boucle sur j imbriquée n'est pas correcte (là ça fonctionne parce que ton tableau est "carré").
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    for (int j=0;j<tableau[i].length;j++)
    est plus correct.

    Deuxièmement, pour trouver le plus grand entier, tu dois parcourir toutes les cases du tableau, soit tous les tableau[i][j] en refaisant deux boucles imbriquées.

    Bon courage !

  3. #3
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Merci pour ta réponse,

    est-ce normal que tu mettes un i dans les j ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (int j=0;j<tableau[i].length;j++)
    Je continue à chercher.

    Merci encore.

    beegees

  4. #4
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    Euh .. là je suis quand même étonné par ta question. A regarder un tutoriel sur les tableaux à plusieurs dimensions à mon avis ce n'est pas très clair dans ta tête ....

  5. #5
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Citation Envoyé par chtig
    Euh .. là je suis quand même étonné par ta question. A regarder un tutoriel sur les tableaux à plusieurs dimensions à mon avis ce n'est pas très clair dans ta tête ....
    Tout à fait, ça n'est pas très claire dans ma tête.

    Je dois avouer que c'est la première fois que je vois ta méthode, pourrais-tu regarder ce que j'ai fais ?

    Merci
    beegees

  6. #6
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    Dans la section que tu donnes, on ne voit pas l'initialisation de maximum, mais je suppose que tu le fait. Attention à la valeur que tu mets, une bonne idée est de prendre tableau[0][0].
    Sinon, reste toujours la condition d'arrêt de ta deuxième boucle qui doit utiliser tableau[i].length pour être propre (et fonctionner dans tous les cas de tableaux).
    Mais là ça va fonctionner...

  7. #7
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Re-bonjour,

    Après avoir cherché pas mal de temps, je pense avoir trouvé une solution, pourriez-vous me dire si celle-ci vous semble correcte ?

    En tout cas le résultat est là:

    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
    for (int i=0; i < tableau.length; i++ )
    		{
    			for (int j=0; j < tableau.length; j++)
    			{
     
    				if (tableau[i][j] > maximum)
    				maximum = tableau[i][j];
     
    		}
    		}
     
    		System.out.println();
     
    		System.out.println("Le maximum vaut" + maximum);
     
    		//System.out.println("Le maximum vaux :" + maximum);
    Merci d'avance pour votre aide.

    beegees

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Appli avec attribution d'une valeur dans un label
    Par outofspace dans le forum Développement iOS
    Réponses: 3
    Dernier message: 16/09/2014, 22h54
  2. Connaître l'index d'une valeur dans un tableau
    Par chok371 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 26/01/2011, 19h41
  3. Réponses: 4
    Dernier message: 29/06/2006, 15h50
  4. Rechercher une valeur dans un tableau
    Par pafi76 dans le forum Access
    Réponses: 2
    Dernier message: 29/06/2006, 14h23
  5. Réponses: 21
    Dernier message: 28/02/2006, 15h23

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