Générer une chaine correctement parenthésée - Page 2
Résolu
Précédent
- 1
- 2
@whismeril et @Dal j'ai fait ceci:
void empiler(PileCaractere *p, char x) {
p->tab[p->n] = x;
p->n = p->n + 1;
}
char depiler(PileCaractere *p) {
p->n = p->n - 1;
return p->tab[p->n];
}
char sommet(PileCaractere *p) {
return p->tab[p->n - 1];
}
char ouvrante_to_fermante(char ouvrante) {
if (strcmp(ouvrante,'(') == 0)
return ')';
else if (strcmp(ouvrante,'{') == 0)
return '}';
else if (strcmp(ouvrante,'[') == 0)
return ']'
}
void generer_texte_bien_parenthese() {
char chaine[26] = "abcdefghijklmnopqrstuvwxyz";
char ouvrant[3] = "({[";
PileCaractere p = PileVide(&p);
char random_ouvrant = ouvrant[rand() % 3];
empiler(&p, random_ouvrant);
while(!est_vide(&p)) {
enum type_de_caractere suivant = rand() % 3;
switch (suivant) {
case Ouvrante:
empiler(&p, random_ouvrant);
printf("%c", random_ouvrant);
break;
case Fermante:
char fermante = ouvrante_to_fermante(sommet(&p))
printf("%c", fermante);
break;
case Quelconque:
c = chaine[rand() % 26];
printf("%c", c);
break;
}
}
}
Bonjour Theo_0055 : Si tu as les réponses à toutes tes questions, peux-tu basculer ton sujet en résolu ? Sinon indique-nous les questions encore en suspens.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Précédent
- 1
- 2