Suite de caractère
slt,
svp ki peu méxpliké se programme :
#include<conio.h>
#include<stdio.h>
main()
{
int i,j=0,t[256];
char mot[50];
for (i=0;i<256;++i)
t[i] = 0;
i=0;
printf("saisit votre mot :");
gets(mot);
while(mot[i] != '\0')
{
if(mot[i] == ' ' || mot[i] =='\t')
j++;
else
t[mot[i]]++;
++i;
}
for(i=97;i<=122;i++)
printf("%c - %d fois.\n",i,t[i]);
getch();
}
svp ki peu méxpliké se programme :
#include<conio.h>
#include<stdio.h>
main()
{
int i,j=0,t[256];
char mot[50];
for (i=0;i<256;++i)
t[i] = 0;
i=0;
printf("saisit votre mot :");
gets(mot);
while(mot[i] != '\0')
{
if(mot[i] == ' ' || mot[i] =='\t')
j++;
else
t[mot[i]]++;
++i;
}
for(i=97;i<=122;i++)
printf("%c - %d fois.\n",i,t[i]);
getch();
}
Configuration: Windows XP Internet Explorer 7.0
2 réponses
-
ContributeurCette instruction :
t[mot[i]]++;
M'a l'air bizarre...
mot est un tableau de caractère, donc mot[i] représente un caractère.
t est un tableau d'entier, donc t[i] est un entier.
Par contre, ca ne se fait pas d'indexer un tableau d'entier par un caractère comme il est fait plus haut, donc le programme ne doit certainement pas fonctionner.
Sinon le but du programme, outre les erreurs, notemment :for (i=0;i<256;++i) t[i] = 0;
au lieu defor (i=0;i<256;i++) t[i] = 0;
Je pense que le programme à pour but de compter le nombre d'occurence de chaque lettre du mot entré par l'utilisateur.
-
ModérateurSalut,
t[mot[i]]++;
M'a l'air bizarre...
mot est un tableau de caractère, donc mot[i] représente un caractère.
t est un tableau d'entier, donc t[i] est un entier.
Elle n'est pas du tout bizarre
mot[i] c'est bien un caractère
mais t[] c'est un tableau d'entiers
et comme en c si on attribue un caractère à une variable entière on aura le code ascii du caractère
donc on aura l'index de tableau t
si mot[i] = 'A' par exemple
alor t[mot[i]] est équivalent à t[65]
regarde ici (tu peux tester le code et tu verras bien que ça marche ;-) http://www.commentcamarche.net/forum/affich 4537851 probleme en c#12
-
Contributeur@lami20jha ok, je ne savais pas que ca mettais sa valeur ascii lorsqu'il s'agit d'un caractère. Merci de l'info :)
Donc le programme permet bien de compter le nombre d'occurence de chaque caractère présent dans le mot donné par l'utilisateur.
-
Modérateur@kij_82en fait la solution je l'ai déjà donnée, voir le lien, et ramon n'a fait que copier le code ;-)
-
Contributeur@lami20jExact j'avais pas vu ton lien, il y a effectivement plus d'information dans l'autre discution ^^
-
-
le programme fonction tré bien
mais je veu quelqu'un me léxpliké