Exercice de java ?

Fermé
Camelili1 Messages postés 2 Date d'inscription lundi 19 décembre 2022 Statut Membre Dernière intervention 19 décembre 2022 - 19 déc. 2022 à 15:41
Whismeril Messages postés 19022 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 avril 2024 - 31 déc. 2022 à 12:16

Bonjour, je veux un aide dans cet exercice :

Le but de cet exercice est d’écrire un programme permettant d’identifier l’élément apparaîssant le plus fréquemment dans un tableau d’entiers. Ce programme devra également afficher le nombre d’occurences dans le tableau de cet élément le plus fréquent. Par exemple, pour le tableau suivant : {2, 7, 5, 6, 7, 1, 6, 2, 1, 7} votre programme devra indiquer que l’élément le plus fréquent est le 7 et que sa fréquence d’apparition est 3.

Votre programe devra produire un affichage se conformant strictement à l’exemple suivant : Le nombre le plus frequent dans le tableau est le : 7 (3 x) Il y a un retour à la ligne après les « : ». Le code que vous écrirez devra pouvoir s’appliquer à n’importe quel tableau, mais vous pourrez supposer que ces tableaux sont toujours non vides. Notez à ce propos que si dans un tableau donné il y a plus d’un nombre ayant le plus grand nombre d’occurences, alors votre programme ne retiendra que celui qui apparaît en premier dans le tableau. Par exemple, pour le tableau tab1 = {2, 7, 5, 6, 7, 1, 6, 2, 1, 7, 6}, où 6 et 7 sont tous deux les nombres les plus fréquents (les deux apparaissant 3 fois), votre programme ne retiendra que le 7 et affichera : Le nombre le plus frequent dans le tableau est le : 7 (3 x) .

Voila mon code :

public class Exercice {
    		public static void main(String[] args) {
 
    			int[] tab1 = {2, 7, 5, 6, 7, 1, 6, 2, 1, 7, 6};
    		    int taille = tab1.length;
 
    		    /******************************************* * 
                     * Completez le programme a partir d’ici. 
                     * *******************************************/

    		    for (int i = 0; i < taille; i++) {
    	            int count = 0;
    	            for (int j = 0; j < taille; j++) {
    	                if (tab1[i] == tab1[j])
    	                  count++;
    	            }
 
    	            System.out.println("Le nombre le plus frequent dans le tableau est le :" + tab1[i] + " " + count + " fois");
    	        }
 
    				/********************************************
                                 * *Ne rien modifier apres cette ligne. 
                         * *******************************************/ 
 
 
 
    	}
 
    }

Svp comment afficher l'entier le plus fréquent dans mon tableau ?????

Et merci ..

A voir également:

4 réponses

choubaka Messages postés 39375 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 14 avril 2024 2 100
19 déc. 2022 à 16:02

Bonjour

En réfléchissant, mettre en oeuvre ce que tu as appris et ne pas espérer que nous fassions ton devoir à ta place.


0
Camelili1 Messages postés 2 Date d'inscription lundi 19 décembre 2022 Statut Membre Dernière intervention 19 décembre 2022
19 déc. 2022 à 16:13

J'ai pas demander de faire ça , Si tu ne peux pas m'aider , ne parle pas cette façon .. un peu de politesse svp

0
PierrotLeFou
19 déc. 2022 à 18:43

Saurais-tu comment trier un tableau?
Sinon, comment le ferais-tu à la main?
Autre idée, il y a des "dictionnaires" ou des "map" en Java ...

0
PierrotLeFou
20 déc. 2022 à 03:56

Si ces concepts sont trop avancés pour toi, voici quelque chose de plus simple.
Je te donne l'idée. Je te laisse le coder.
Tu te crée deux tableaux de même longueur que ton tableau initial.
Le premier que j'appellerai "nombres" contient les nombres dans l'ordre d'apparition.
Le second que j'appelle "frequences" contient la fréquence du nombre à l'indice correspondant.
Par exemple, si nombres[0] contient 1, alors frequences[0] contient la fréquence des 1.
Au départ, les deux tableaux sont vides.
Tu parcours ton tableau initial.
Pour chaque nombre trouvé, tu cherches sa présence dans nombres.
Si tu le trouves, tu augmentes la valeur à l'indice correspondant dans frequences.
Sinon, tu ajoutes ce nombre à la fin du tableau nombres et tu places 1 à la fin du tableau frequences.
Quand tu as fini, tu cherches dans le tableau frequences la fréquence la plus élevée (le premier) et tu vas chercher le nombre correspondant dans le tableau nombres.

0
Lumberjack33 Messages postés 8 Date d'inscription samedi 31 décembre 2022 Statut Membre Dernière intervention 31 décembre 2022
31 déc. 2022 à 12:04

import java.util.HashMap;
import java.util.Map;

public class Main {
  public static void main(String[] args) {
    int[] array = {2, 7, 5, 6, 7, 1, 6, 2, 1, 7};

    // Utilisation d'une map pour compter les occurences de chaque nombre
    Map<Integer, Integer> occurences = new HashMap<>();
    for (int n : array) {
      occurences.put(n, occurences.getOrDefault(n, 0) + 1);
    }

    // Recherche du nombre le plus fréquent
    int mostFrequentNumber = -1;
    int mostFrequentCount = 0;
    for (Map.Entry<Integer, Integer> entry : occurences.entrySet()) {
      if (entry.getValue() > mostFrequentCount) {
        mostFrequentNumber = entry.getKey();
        mostFrequentCount = entry.getValue();
      }
    }

    // Affichage du résultat
    System.out.println("Le nombre le plus frequent dans le tableau est le : " + mostFrequentNumber + " (" + mostFrequentCount + " x)");
  }
}
 

Ce code utilise une HashMap pour compter les occurences de chaque nombre dans le tableau, puis parcourt la map pour trouver le nombre le plus fréquent. Enfin, il affiche le résultat en suivant le format spécifié.

Notez que ce code suppose que le tableau est non vide. Si vous souhaitez gérer le cas où le tableau est vide, vous pouvez ajouter une vérification avant de parcourir la map pour trouver le nombre le plus fréquent.

0
Whismeril Messages postés 19022 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 avril 2024 928
31 déc. 2022 à 12:16

Bonjour Lambertjack33, et si Camelili1 n'a pas encore vu les map dans son cursus?

Vu l'exercice et le code qu'il (elle ?) a posté, j'en doute.

Est ce vraiment l'aider que de lui donner un code tout fait encore hors de sa portée?

D'une part, il risque de ne pas le comprendre et d'autre part, s'il le copie colle tel quel son prof sera sans aucun doute ravis de savoir qu'il n'a pas fait ça de lui-même...

0