jbrem
Messages postés3Date d'inscriptionsamedi 18 octobre 2008StatutMembreDernière intervention19 octobre 2008
-
18 oct. 2008 à 10:52
Elouafiq
Messages postés1Date d'inscriptiondimanche 14 décembre 2008StatutMembreDernière intervention14 décembre 2008
-
14 déc. 2008 à 15:05
Bonjour,
je suis étudiant et je dois comparer si les 2 mots que j'ai saisi sont des anagrammes. J'ai réussi à voir si la longueur de mots était identique. Je pensais créer un compteur de chaque lettre et si ces compteurs sont égaux, les mots seraient donc des anagrammes.
PS: je suis au tout début de la prog en C++ donc pour l'instant c'est un peu du charabia!
Merci à tout ceux qui me répondront
cs_Lucky92
Messages postés180Date d'inscriptionmercredi 22 décembre 2004StatutMembreDernière intervention16 août 20122 18 oct. 2008 à 11:44
Bonjour,
La méthode que tu proposes est correcte. Une autre méthode - moins efficace mais plus facile à mettre en oeuvre, consiste à trier les caractères des deux chaînes, puis à comparer les chaînes triées : si elles sont égales, les chaînes d'origine sont des anagrammes.
jbrem
Messages postés3Date d'inscriptionsamedi 18 octobre 2008StatutMembreDernière intervention19 octobre 2008 18 oct. 2008 à 11:50
d'accord & merci pour le tuyau!
Mais comment on exprime tout ça en C++ ? car je ne vois pas comment "trier les caractères" je suis un tout neuf dans le domaine!
Merci!
En revanche, l'objectif de ton programme est de te faire travailler l'algorithmie et la programmation, il faut que tu fasses abstraction du langage dans un premier temps, et que tu décrives en langage naturel la ou les procédures que tu vas utiliser pour résoudre ton pb.
Elouafiq
Messages postés1Date d'inscriptiondimanche 14 décembre 2008StatutMembreDernière intervention14 décembre 2008 14 déc. 2008 à 15:05
Voici la reponse rapide pour ton probleme:
1-premierement tu doit trier les deux chaines de characteres:
tu entre les deux mots chacun dans cette fonction ex:
Bubble(mot1,strlen(mot1));
Bubble(mot2,strlen(mot2));
// et puis tu vas les comparer
if(!(strcmp(mot1,mot2))
printf("\n il sont des anagrames");
else
printf("\n il ne sont po des anagrammes");
// tu vas dire pourkoi les trier:
par example si ta le mot" alakasame" et le mot "ksamalae"
quand tu vas les trier il vont devenir: aaaeklms
alors ils vont avoir le meme mot trier.
si il ne sont po quand il seront trier il ne seront po pareille.
tu auras besoin de la librairie: <string.h>
et des fonctions suivantes:
void Bubble(char*str,int size)
{
int i,j;
for(i=0;i<size-1;i++) for(j="size-1;j">i;j--)
if(str[j]</size-1;i++)></string.h>