Exercice en c

mannour85 Messages postés 69 Date d'inscription lundi 11 mai 2009 Statut Membre Dernière intervention 25 avril 2015 - 7 déc. 2010 à 12:12
mannour85 Messages postés 69 Date d'inscription lundi 11 mai 2009 Statut Membre Dernière intervention 25 avril 2015 - 7 déc. 2010 à 19:07
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

cs_Chouchou182 Messages postés 252 Date d'inscription vendredi 13 juin 2003 Statut Membre Dernière intervention 25 avril 2011 1
7 déc. 2010 à 19:00
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,
0
mannour85 Messages postés 69 Date d'inscription lundi 11 mai 2009 Statut Membre Dernière intervention 25 avril 2015
7 déc. 2010 à 19:07
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() ;
}
0
Rejoignez-nous