cs_sizixe
Messages postés5Date d'inscriptionlundi 27 juillet 2009StatutMembreDernière intervention28 mars 2010
-
28 mars 2010 à 15:44
deadhand
Messages postés152Date d'inscriptiondimanche 15 octobre 2006StatutMembreDernière intervention27 août 2010
-
28 mars 2010 à 17:52
bonjour,
voila mon problème : je veux faire un petit programme qui permet de compressé les chaine de caractères ex: la chaine aaaabbb il vas l'écrire :4a3b.
je sais que c nul comme programme mais bon: voila mon code:
#include <stdlib.h>
#include <stdio.h>
int main()
{
int tab[]={'a','a','a','b','b'},i=0,a=0,b=0,j=0;
for(i=0;i<5;i++)
if(tab[0]==tab[i])
{
a++;
}
printf("%d letre de %c\n",a,tab[0]);
for(j=0;j<5;j++)
if(tab[3]==tab[j])
{
b++;
}
printf("%d letre de %c\n\n",b,*(tab+3) );
}
quand je compile ca va ,mais quand je change la chaine tab le résultat est un peut . . .faux
ex :si je fais tab[]={'a','b','b','b','b'}
le résultat est faux il me mets truck flous . .
comment je fais pour avoir le bon résultat même si la chaine change.
merci
deadhand
Messages postés152Date d'inscriptiondimanche 15 octobre 2006StatutMembreDernière intervention27 août 20103 28 mars 2010 à 17:52
Ah ben ca c'est sur !! Ton code ne prend en compte qu'un cas !!!!!!
#include <stdlib.h>
#include <stdio.h>
int main()
{
int tab[]={'a','a','a','b','b'},i=0,a=0,b=0,j=0;
for(i=0;i<5;i++)
if(tab[i==0?0:i-1]==tab[i])
{
a++;
}
else {
printf("%d letre de %c\n",a,tab[i==0?0:i-1]);
a = 1;
}
// Fin de la boucle
printf("%d letre de %c\n",a,tab[i]);
}