Problème en c
mp007
-
mp007 -
mp007 -
Bonjour,
je veux quelqu'un qui m'aide a faire un programe qui:
créer un programme qui retourne pour chaque lettre de l'alphabet le nombre de son apparition dans un texte(les accents ne seront prises en compte)
par exemple : "je veux quelqu'un qui m'aide"
a b c d e f g h i j k l m n o p q r s t u v w x y z
1 0 0 1 4 0 0 0 2 1 0 1 1 1 0 0 3 0 0 0 4 1 0 1 0 0
je veux quelqu'un qui m'aide a faire un programe qui:
créer un programme qui retourne pour chaque lettre de l'alphabet le nombre de son apparition dans un texte(les accents ne seront prises en compte)
par exemple : "je veux quelqu'un qui m'aide"
a b c d e f g h i j k l m n o p q r s t u v w x y z
1 0 0 1 4 0 0 0 2 1 0 1 1 1 0 0 3 0 0 0 4 1 0 1 0 0
13 réponses
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;
}
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
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
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();
}
#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;
}