13 réponses
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
4 janv. 2008 à 23:33
4 janv. 2008 à 23:33
Salut,
#include<stdio.h> int main() { int espace,i,c; int freq[256]; espace = 0; for(i=0;i<256;++i) freq[i] = 0; while((c = getchar()) != EOF){ if(c == ' ' || c == '\t' || c == '\n') ++espace; else ++freq[c]; } for(i=97;i<=122;++i) printf("%c - %d fois.\n",i,freq[i]); printf("espace + tab + saut ligne = %d\n",espace); return 0; }
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
5 janv. 2008 à 00:40
5 janv. 2008 à 00:40
Chez moi oui (une fois que tu as tapé la phrase fait CTRL + D ou CTRL + C
lami20j@debserv:~/trash$ cat freq_char.c #include<stdio.h> int main() { int espace,i,c; int freq[256]; espace = 0; for(i=0;i<256;++i) freq[i] = 0; while((c = getchar()) != EOF){ if(c == ' ' || c == '\t' || c == '\n') ++espace; else ++freq[c]; } for(i=97;i<=122;++i) //if(freq[i] != 0) printf("%c - %d fois.\n",i,freq[i]); printf("espace + tab + saut ligne = %d\n",espace); return 0; } lami20j@debserv:~/trash$ gcc freq_char.c lami20j@debserv:~/trash$ ./a.out "je veux quelqu'un qui m'aide" a - 1 fois. b - 0 fois. c - 0 fois. d - 1 fois. e - 4 fois. f - 0 fois. g - 0 fois. h - 0 fois. i - 2 fois. j - 1 fois. k - 0 fois. l - 1 fois. m - 1 fois. n - 1 fois. o - 0 fois. p - 0 fois. q - 3 fois. r - 0 fois. s - 0 fois. t - 0 fois. u - 5 fois. v - 1 fois. w - 0 fois. x - 1 fois. y - 0 fois. z - 0 fois. espace + tab + saut ligne = 6
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
5 janv. 2008 à 00:51
5 janv. 2008 à 00:51
sinon essai
#include<stdio.h> #include<stdlib.h> int main() { int espace,i; int freq[256]; char *s; if (NULL == (s = (char *) malloc (200 * sizeof(char)))) return -1; printf("Entrez une phrase : "); fgets(s,200,stdin); espace = 0; for(i=0;i<256;++i) freq[i] = 0; while(*s != '\0'){ if(*s == ' ' || *s == '\t') ++espace; else ++freq[*s]; ++s; } for(i=97;i<=122;++i) //if(freq[i] != 0) printf("%c - %d fois.\n",i,freq[i]); printf("espace + tab + saut ligne = %d\n",espace); return 0; }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
mé apré qu'on execute le programme il devré afiché a lécron :
enter votre phrase : je veux quelqu'un qui m'aide
a - 1 fois.
b - 0 fois.
c - 0 fois.
d - 1 fois.
e - 4 fois.
f - 0 fois.
g - 0 fois.
h - 0 fois.
i - 2 fois.
j - 1 fois.
k - 0 fois.
l - 1 fois.
m - 1 fois.
n - 1 fois.
o - 0 fois.
p - 0 fois.
q - 3 fois.
r - 0 fois.
s - 0 fois.
t - 0 fois.
u - 5 fois.
v - 1 fois.
w - 0 fois.
x - 1 fois.
y - 0 fois.
z - 0 fois.
espace + tab + saut ligne = 6
enter votre phrase : je veux quelqu'un qui m'aide
a - 1 fois.
b - 0 fois.
c - 0 fois.
d - 1 fois.
e - 4 fois.
f - 0 fois.
g - 0 fois.
h - 0 fois.
i - 2 fois.
j - 1 fois.
k - 0 fois.
l - 1 fois.
m - 1 fois.
n - 1 fois.
o - 0 fois.
p - 0 fois.
q - 3 fois.
r - 0 fois.
s - 0 fois.
t - 0 fois.
u - 5 fois.
v - 1 fois.
w - 0 fois.
x - 1 fois.
y - 0 fois.
z - 0 fois.
espace + tab + saut ligne = 6
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
5 janv. 2008 à 00:57
5 janv. 2008 à 00:57
je ne vois pas où et ton problème
tu as compilé le programme?
tu l'as exécute?
tu as compilé le programme?
tu l'as exécute?
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
5 janv. 2008 à 13:43
5 janv. 2008 à 13:43
Re,
#include<stdio.h> /* ici on inclu les headers (en-tête) - ce sont des fichiers .h qui */ #include<stdlib.h>/* contiennent des prototypes des fonctions, etc. */ int main() { int espace,i; /* la variable espace stocke le nombre d'espaces, i une variable de contrôle */ int freq[256]; /* la table ASCII va de 0 à 127 et ASCII étendue de 128 à 255 */ /* ce qui fait en total 256 */ char *s; /* un pointeur de type caractère */ if (NULL == (s = (char *) malloc (200 * sizeof(char)))) return -1; /* on alloue de la mémoire - la chaine aura maximum 200 caractères */ /* si le pointeur retourner vaut NULL, alors il n'y pas de la mémoire disponible */ /* et on quitte le programme en retournant la valeur -1 */ printf("Entrez une phrase : "); fgets(s,200,stdin); /* on stocke la chaine entrée au clavier (stdin c'est l'entrée standard = le clavier) */ espace = 0; /* on initialise la variable qui va compter les espaces et tabulations */ for(i=0;i<256;++i) /* on initialise les cases du tableau avec la valeur 0 */ freq[i] = 0; while(*s != '\0'){ /* tant que la fin de la chaîne n'est atteinte le caractère \0 (NULL) se trouve à la fin de chaîne*/ if(*s == ' ' || *s == '\t') /* si le caractère est un espace ou tabulation */ /* *s c'est la valeur contenu par l'objet pointé par s */ /* *s est équivalent à s[0] - le 1er élément de tableau de caractères */ ++espace; /* on compte les espaces et tabulations */ else /* sinon */ ++freq[*s]; /* on compte les caractères */ /* freq c'est un tableau des entiers */ /* en C si on stocke un caractère dans un entier on a le code ascii de caractère */ /* par exemple pour le caratère A on aura freq[65] */ /* au début j'ai initialisé le tableau à zéro pour chaque case de 0 à 255 */ /* si je trouve un A ça donne freq[65] = 1 et ainsi de suite */ ++s; /* je passe au caractère suivant */ } for(i=97;i<=122;++i) /* j'affiche seulement la féquence des minuscules ASCII: a=97 et z=122 */ printf("%c - %d fois.\n",i,freq[i]); printf("espace + tab + saut ligne = %d\n",espace); /* affiche le nombre d'espaces et tabulations */ return 0; }
je veux savoir kélé le probleme dans se programme :
#include<stdio.h>
#include<conio.h>
main()
{
int i,j=0;
char mot[50];
printf("saisit votre mot :");
gets(mot);
for(i=0;i<256;i++)
while(mot[i])
{
if(mot[i++]==' ' || mot[i++]=='\t')
j++;
else
mot[i]++;
}
for(i=97;i<=122;i++)
printf("%c - %d fois.\n",i,t[i]);
getch();
}
#include<stdio.h>
#include<conio.h>
main()
{
int i,j=0;
char mot[50];
printf("saisit votre mot :");
gets(mot);
for(i=0;i<256;i++)
while(mot[i])
{
if(mot[i++]==' ' || mot[i++]=='\t')
j++;
else
mot[i]++;
}
for(i=97;i<=122;i++)
printf("%c - %d fois.\n",i,t[i]);
getch();
}
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
5 janv. 2008 à 14:18
5 janv. 2008 à 14:18
#include<stdio.h> int main() { int i,j=0; char mot[50]; int t[256]; 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]); getchar(); return 0; }