Fréquence d'un nombre en C
Fermé
the-kraken
Messages postés
1
Date d'inscription
mercredi 26 janvier 2011
Statut
Membre
Dernière intervention
26 janvier 2011
-
26 janv. 2011 à 22:43
Hxyp Messages postés 401 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 27 avril 2014 - 28 janv. 2011 à 05:55
Hxyp Messages postés 401 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 27 avril 2014 - 28 janv. 2011 à 05:55
A voir également:
- Fréquence d'un nombre en C
- Fréquence du processeur - Guide
- Frequence 4g - Guide
- Nombre facile - Télécharger - Outils professionnels
- Dans ce fichier, réalisez le graphique xy (nuage de points ou dispersion), avec les x en abscisse. dans le graphique, les points dessinent un nombre. lequel ? - Forum Bureautique
- Le nombre de tentatives de déverrouillage incorrectes est trop élevé samsung ✓ - Forum Samsung
2 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 841
26 janv. 2011 à 23:05
26 janv. 2011 à 23:05
Oui, c'est bien clair.
Le plus simple est d'utiliser un tableau pour stocker les éléments.
Tu prends le premier, et tu regardes le nombre de fois qu'il apparaît.
Puis tu passes au suivant (attention à ce qu'il soit différent des éléments précédents) et tu comptes son nombre d'apparition. Etc.
Voilà, l'idée. A toi d'approfondir pour bien comprendre le principe.
Ensuite tu pourras écrire l'algorithme et enfin le programme C.
Cdlt,
Le plus simple est d'utiliser un tableau pour stocker les éléments.
Tu prends le premier, et tu regardes le nombre de fois qu'il apparaît.
Puis tu passes au suivant (attention à ce qu'il soit différent des éléments précédents) et tu comptes son nombre d'apparition. Etc.
Voilà, l'idée. A toi d'approfondir pour bien comprendre le principe.
Ensuite tu pourras écrire l'algorithme et enfin le programme C.
Cdlt,
Hxyp
Messages postés
401
Date d'inscription
vendredi 28 janvier 2011
Statut
Membre
Dernière intervention
27 avril 2014
54
Modifié par Hxyp le 28/01/2011 à 07:00
Modifié par Hxyp le 28/01/2011 à 07:00
Bonjour,
La même chose mais d'une manière à ne pas réutiliser la boucle servant à récupérer le nombre de répétition d'un nombre si il a déjà été testé :
Vous devriez pouvoir le comprendre sans commentaires
La même chose encore pour la route :
#include <stdio.h> int main() { /* mise de la serie dans un tableau de int c'est à vous de voir comment les y mettre */ int tab_serie[]={10,10,15,12,15,3,3,3,8,8,9}; /* récupération de la taille du tableau sizeof(tab_de_int) retourne la taille en octet du tableau alors pour savoir le nombre de int qu'il contient on divise par la taille que prend un int en octet */ int taille_tab=sizeof(tab_serie)/sizeof(int); /* i et j : pour les boucle nb_cpt : pour compter les repetitions d'un nombre dejavu : si un nombre a déjà été vu alors pas besoin de l'afficher à nouveau. Il y a une tonne de façons de faire... */ int i,j,nb_cpt,dejavu; /* première boucle i faite sur chaque int du tableau permet de garder le nombre courant i pour le tester ensuite dans une boucle interne sur le tableau en utilisant j */ for(i=0;i<taille_tab;i++) { nb_cpt=0,dejavu=0; /* boucle j permet de faire le teste et d'incrémenter nb_cpt */ for(j=0;j<taille_tab;j++) { if(tab_serie[i]==tab_serie[j]) { nb_cpt++; } } /* recyclage de j (qui est devenu inutile) pour créer une boucle sur les nombres précédemment utilisés afin de ne pas faire de copies. si le nombre courant i se retrouve dans ceux déjà vu (entre j=0 à j=i-1 enfin c'est une façon de voir) alors dejavu++ */ for(j=0;j<i;j++) { if(tab_serie[i]==tab_serie[j]) { dejavu++; } } if(dejavu==0) { printf("%d %d fois\n",tab_serie[i],nb_cpt); } } return 0; }
La même chose mais d'une manière à ne pas réutiliser la boucle servant à récupérer le nombre de répétition d'un nombre si il a déjà été testé :
Vous devriez pouvoir le comprendre sans commentaires
#include <stdio.h> int main() { int tab_serie[]={10,10,15,12,15,3,3,3,8,8,9}; int taille_tab=sizeof(tab_serie)/sizeof(int); int i,j,nb_cpt,dejavu; for(i=0;i<taille_tab;i++) { nb_cpt=0,dejavu=0; for(j=0;j<i;j++) { if(tab_serie[i]==tab_serie[j]) { dejavu++; } } if(dejavu==0) { for(j=0;j<taille_tab;j++) { if(tab_serie[i]==tab_serie[j]) { nb_cpt++; } } printf("%d %d fois\n",tab_serie[i],nb_cpt); } } return 0; }
La même chose encore pour la route :
int main() { int tab_serie[]={10,10,15,12,15,3,3,3,8,8,9}; int taille_tab=sizeof(tab_serie)/sizeof(int); int i,j,nb_cpt; for(i=0;i<taille_tab;i++) { nb_cpt=0; for(j=0;j<taille_tab;j++) { if(tab_serie[i]==tab_serie[j]) { if(j<i){ break; } else { nb_cpt++; } } if(j==taille_tab-1){ printf("%d %d fois\n",tab_serie[i],nb_cpt); } } } return 0; }