Forum > C/C++ > Expressions parenthésées, crochetées, ... >

Expressions parenthésées, crochetées, ...

Auteur Message
jeremya Posté le 17 mai 2007 13:49:07

Administrateur
Administrateur

Auteur
Auteur

Modérateur
Modérateur

Inscrit le : 20 sep 2005
Localisation : Nord-Pas de Calais
Emploi :
Loisirs :

PROBLEME

Vérifier si une expression est bien parenthésée est une chose, mais les parenthèses sont loin d'être la seule manière de regrouper des éléments. On utilise aussi les crochets, les accolades, ou les signes '<' et '>', pour grouper un certain nombre d'éléments.

Ecrivez un programme qui lit une ligne de texte, et vérifie que toutes les parenthèses , crochets, etc sont bien refermés, et dans l'ordre dans lequel ils ont été ouverts. Les paires signes pouvant être utilisées sont : '(' et ')', '[' et ']', '{' et '}', et '<' et '>'.

La ligne de texte peut contenir d'autres caractères que les 8 cités, et ceux-ci doivent être ignorés. La ligne s'arrête lorsque le caractère '\n' est rencontré. 

CONTRAINTES

  • 1 <= N <= 200, où N est le nombre de caractères de l'expression à vérifier.

SORTIE

Votre programme doit afficher une ligne contenant le texte "yes", si l'expression fournie en entrée est bien parenthésée, crochetée, etc. et "no" sinon.

CODE SOURCE

 
#include <stdio.h>
 
bool parenthese(char s='\n')
{
  while((char c=getchar())!='\n')
  {
    if(c==s)  return true;
    else if(c=='('&& !parenthese(')')) return false;
    else if(c=='['&& !parenthese(']')) return false;
    else if(c=='{'&& !parenthese('}')) return false;
    else if(c=='<'&& !parenthese('>')) return false;
  }
 
  return true;
}
 
int main(int argc, char *argv[]) 
{ 
 
  printf(parenthese()?"yes\n":"no\n");
 
  return 0; 
}
 

EXPLICATIONS

Pour écrire sur la sortie standard, on utilise la fonction printf().

Pour lire sur l'entrée standard, on utilise la fonction scanf(). 

 

Messages : 60 http://www.jeremya.ironie.org
aloalo Posté le 03 mai 2008 02:20:53

Invité de passage
Invité de passage

Inscrit le : 03 mai 2008
Localisation :
Emploi :
Loisirs :

Salut

 

j'ai tester ton programme mais ca marche ps bien et plus que ca il me donne erreur de compilation sur la boucle  while((char c=getchar())!='n') et aussi il ne connait pas le bool . j'utilise comme compilateur visual studio c++

l'erreur je l ai trouvé sur ce test : ([)] il me donne comme resultat "yes"

 

Messages : 1

répondre

première page page précédente page suivante dernière page

Navigation rapide :

Forum > C/C++ > Expressions parenthésées, crochetées, ... >


Cette page a été générée le 09 mai 2008 23:16:20.
clipart home livre lecture book JEREMYA
WEBSITE
jeremya.ironie.org

s'identifier

Nom d'utilisateur :
Mot de passe :

outils

qui est en ligne ?

3 visiteurs en ligne

sondage qualité

1-mauvais - excellent-5
Design :
1 5
Ergonomie :
1 5
Contenu :
1 5
Structure :
1 5
Ensemble :
1 5
1-mauvais - excellent-5
Commentaire :