Exercice en c

Signaler
Messages postés
69
Date d'inscription
lundi 11 mai 2009
Statut
Membre
Dernière intervention
25 avril 2015
-
Messages postés
69
Date d'inscription
lundi 11 mai 2009
Statut
Membre
Dernière intervention
25 avril 2015
-
Bonjour, j'ai essayer de corriger cet exercice en c mais j'ai pas eu une bonne exécution j'ai besoin d'aide .voici l'exercice puis mon essai.
exercice:
Ecrire un programme C qui accepte un texte qui se termine par le caractère `#' et qui affiche en sortie :

1/ Le nombre de caractères minuscules
2/ Le nombre de caractères majuscules
3/ Le nombre de chiffres
4/ Le nombre de lignes
5/ Le nombre de séparateurs
6/ La longueur du mot le plus long
mon essai:
#include<stdio.h>
#include<conio.h>
main()
{ char c;
int nmin=0,nmaj=0,nch=0,nlig=1,nsep=0,l=0,max=0;
c=getchar()
while (c!='#')
{if((c<='A')&&(c<='Z'))
nmaj=nmaj+1;
else
if((c<='a')&&(c<='z'))
nmin=nmin+1;
else
{ if(c==' `)||c=='\n `||c=='. `||c==', `)
nsep=sep+1;
else{ if(c=='\n `)
nlig=nlig+1;
else if(c==' `)||c=='\n `||c=='. `||c==', `)
{if(l>max)
max=1;
l=0;}
else l=l+1;

}}}

printf(« Le nombre de caractères minuscules est %d\n »,nmin) ;
printf(« Le nombre de caractères majuscules est %d \n»,nmaj) ;
printf(« Le nombre de chiffres est %d\n »,nch) ;
printf(« Le nombre de lignes est %d\n »,nlig) ;
printf(« Le nombre de séparateurs est %d\n »,nsep) ;
printf(« La longueur du mot le plus long est%d\n »,max) ;
getch() ;
}

2 réponses

Messages postés
252
Date d'inscription
vendredi 13 juin 2003
Statut
Membre
Dernière intervention
25 avril 2011

Salut,

Est-ce que ça compile chez toi ? Parce que les guillemets sont un peu bizarres, non ?

Une première correction : il faut lire un caractère à chaque passage dans la boucle.

Par exemple, rajoute à la fin de la boucle l'instruction :
c = getchar();


Ensuite, fais attention au sens des comparaisons : c <= 'a' ou c >= 'a' ?

Bonne prog,
Messages postés
69
Date d'inscription
lundi 11 mai 2009
Statut
Membre
Dernière intervention
25 avril 2015

salut voici une amélioration du code mais lors de l'exécution pour le mots le plus long s'il est au début il affiche sa taille sinon il affiche sa taille+1
#include<stdio.h>
#include<conio.h>
main()
{
char c;
int nmin=0,nmaj=0,nch=0,nlig=1,nsep=0,l=0,max=0;
c=getchar();
while (c!='#')
{ if((c>='0')&&(c<='9'))
nch=nch+1;
else if((c>='A')&&(c<='Z'))
nmaj=nmaj+1;
else if((c>='a')&&(c<='z'))
nmin=nmin+1;
else if(c==' '||c=='\n'||c=='.'||c==','||c==';'||c==':')
{
nsep=nsep+1;
if (c=='\n')
nlig=nlig+1;
if(l>max)
max=l;
l=0;
}
l=l+1;
c=getchar();
}

printf(" Le nombre de caractères minuscules est %d\n ",nmin) ;
printf(" Le nombre de caractères majuscules est %d \n",nmaj) ;
printf(" Le nombre de chiffres est %d\n ",nch) ;
printf(" Le nombre de lignes est %d\n ",nlig) ;
printf(" Le nombre de séparateurs est %d\n ",nsep) ;
printf(" La longueur du mot le plus long est%d\n ",max) ;
getch() ;
}