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();
}
Configuration: Windows XP
Internet Explorer 7.0

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Cette 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 de
     for (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.

    1. Modérateur
      Salut,

      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

    2. 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.
    3. 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 ;-)
    4. Contributeur
      @lami20jExact j'avais pas vu ton lien, il y a effectivement plus d'information dans l'autre discution ^^
  2. le programme fonction tré bien
    mais je veu quelqu'un me léxpliké