Optimiser ce code...

MoDDiB Messages postés 546 Date d'inscription mardi 26 novembre 2002 Statut Membre Dernière intervention 4 mai 2007 - 13 nov. 2003 à 18:33
MoDDiB Messages postés 546 Date d'inscription mardi 26 novembre 2002 Statut Membre Dernière intervention 4 mai 2007 - 13 nov. 2003 à 22:08
Voila je m'entraine aux prologin mais voila je depasse la vitesse maximale pr exécuté le code, j'ai cherché amélioré etc.. et j'en suis arrivé au code suivant , Connaissez vous des fonctions d'entrée sorties plus rapide?? ai-je fais des erreur qq part? est ce leur systeme qui analyse mal le temps?
Merci de me donner vos avis et ne vous inquietez pas c'est pour apprendre et pas pour me faire des points et demander la réponse rapidement (jsuis deja a 20 envoie de source lol)
Un grand merci parcke je suis fatigué de plancher dessus depuis.... ^^
#include

int main()
{

int i;

int occurence[25];

for ( i=0; i <= 25 ; i++)
occurence[i] = 0;

char *lettre;

int nombre = 0;
//Entrez le nombre

do
{
cin >> nombre ;

}while (nombre <1 || nombre > 100000);

lettre = new char[nombre];

for ( i=0; i < nombre ; i++)
lettre[i] = 0;

//enregistrer le nombre
for (i =0;i<=nombre;i++)
{
lettre[i] = cin.get();
}

//traitez les nombers
i=0;

while (i<=nombre)
{

if (lettre[i] >= 'a')
occurence[lettre[i] - 'a']++;
else
occurence[lettre[i] - 'A' ]++;

i++;
}

int most =0;

for ( i=25;i>=0;i--)
{
if (occurence[i]>most)
most = occurence[i];

}

cout<<most;

delete lettre;

return 1;
}

8 réponses

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
13 nov. 2003 à 19:20
Salut,
Le but exact c'est quoi ? compter le nombre de fois que les lettres apparaissent dans un tableau ?
0
MoDDiB Messages postés 546 Date d'inscription mardi 26 novembre 2002 Statut Membre Dernière intervention 4 mai 2007 1
13 nov. 2003 à 19:26
Donner loccurence ds la lettre la plus presente dans la saisie de l'utilisateur.
L'utilisateur entre d'abord le nombre de characteres de sa chaine puis il entre sa chaine et obtient le resultat :
ex :
5
azaea
donne
3
voili ^^ le code fonctionne parfaitement mais il est po assez rapide cf ci dessus mon post ^^
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
13 nov. 2003 à 19:59
Salut,
Moi je ferais une boucle de 'nombre fois' iteration, avec un truc comme ca dedant:

if ((c = getchar()) >= 'a')
if(++occurence[c - 'a'] > most) most = occurence[c - 'a'];
else
if(++occurence[c - 'A'] > most) most = occurence[c - 'A'];

Quand tu sors de la boucle, tu affiches most et c'est bon.
0
MoDDiB Messages postés 546 Date d'inscription mardi 26 novembre 2002 Statut Membre Dernière intervention 4 mai 2007 1
13 nov. 2003 à 20:35
J'ai essayé ca donne carrement plus le bon resultat.. mais bon g po eu le temps de trop essayer v voir ca en fond des ke j'ai le temps ^^ merci kan meme ^^
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
13 nov. 2003 à 21:05
Salut,
J'ai oublié les { }.

if ((c = getche()) >= 'a')
{if(++occurence[c - 'a'] > most) most = occurence[c - 'a'];}
else
{if(++occurence[c - 'A'] > most) most = occurence[c - 'A'];}

Chez moi ca marche, now faut voir la rapidité.
0
MoDDiB Messages postés 546 Date d'inscription mardi 26 novembre 2002 Statut Membre Dernière intervention 4 mai 2007 1
13 nov. 2003 à 21:13
euh je reessaierai mais ton code avec ou sans { il va de la meme maniere non??^^
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
13 nov. 2003 à 21:26
Salut,

if(...)
if(...);
else

le 'else' est executé si la condition du 2eme if est fausse.

if(...)
{if(...);}
else

le 'else' est executé si la conditon du 1er if est fausse.

Voila la difference a laquelle j'ai pas pensé au debut.
0
MoDDiB Messages postés 546 Date d'inscription mardi 26 novembre 2002 Statut Membre Dernière intervention 4 mai 2007 1
13 nov. 2003 à 22:08
Oups pardon ^^
0
Rejoignez-nous