Lettre la plus présente dans un mot

Description


Source / Exemple :


#include<iostream.h>
#include<string.h>

const int nb_max_cara=20;

struct letter
{
	char valeur;
	int nbl;
};

struct liste
{
	letter lettre[nb_max_cara];
	int nblettre;
};

void initliste(liste &l1)
{
	l1.nblettre=0;
}

void ajoutelettre (liste &liste1, char a)
{
	int i;
	bool existe=false;
	for (i=0;i<liste1.nblettre;i++)
	{
		if (liste1.lettre[i].valeur==a) {liste1.lettre[i].nbl++;existe=true;}
	}
	if (existe==false) 
	{
		liste1.lettre[liste1.nblettre].valeur=a;
		liste1.lettre[liste1.nblettre].nbl=1;
		liste1.nblettre++;
	}
}

void listelettres (char mot[],liste &liste1)
{
	int i,n;
	n=strlen(mot);
	for (i=0;i<n;i++)
	{
		ajoutelettre (liste1,mot[i]);
	}
}

int pluslong (liste liste1)
{
	int i,pl=0;
	for (i=0;i<liste1.nblettre;i++)
	{
		if (liste1.lettre[i].nbl>pl) pl=liste1.lettre[i].nbl;
	}
	return pl;
}

void affiche(liste l1)
{
	int i;
	for (i=0;i<l1.nblettre;i++)
	{
		cout<<l1.lettre[i].valeur<<" ";
	}
	cout<<endl;
}

void listepl(liste liste1, int pl,liste &liste2)
{
	int i;
	for (i=0;i<liste1.nblettre;i++)
	{
		if (liste1.lettre[i].nbl==pl) ajoutelettre (liste2, liste1.lettre[i].valeur);
	}
}

void main()
{
	liste liste1,liste2;
	char mot[nb_max_cara+1];
	initliste(liste1);
	initliste(liste2);
	int pl;
	cout<<"Entrez votre mot : ";cin>>mot;
	listelettres(mot,liste1);
	pl=pluslong(liste1);
	listepl(liste1,pl,liste2);
	affiche(liste2);
}

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.