Partage
  • Partager sur Facebook
  • Partager sur Twitter

BOUCLE IMBRIQUEE

do...while dans do...while

Sujet résolu
25 novembre 2014 à 15:15:35

J'ai fais ce programme avec une boucle dans une autre boucle et il s'arrete pas alors qu'il devrait s'arrêter une fois      compteur = 4. Help please...

#include <stdio.h>
#include <stdlib.h>

void SUC_NOMBRES();
void SUC_LETTRES();
void SUC_MOTS();

int main(int argc, char *argv[])
{
    int succession=0,compteur=0;
    do
    {
        do
        {
            printf("\n\n\t\t\t");
            scanf("%d",&succession);
            printf("\n\n\t\tCompteur vaut %d",compteur);
        }
        while((succession!=1) && (succession!=2) && (succession!=3));
    }
    while(compteur<4);
    return 0;
}



-
Edité par jersey77176 25 novembre 2014 à 15:18:54

  • Partager sur Facebook
  • Partager sur Twitter
25 novembre 2014 à 15:30:21

compteur est toujours égale à 0 donc c'est normal que tu boucle inf

-
Edité par Ethernyx 25 novembre 2014 à 15:30:43

  • Partager sur Facebook
  • Partager sur Twitter
Si tu crash sous Windows c'est la faute à Windows. Si tu crash sous Linux c'est ta faute et puis c'est tout
25 novembre 2014 à 15:31:58

Tu as oublié d'incrémenter ton compteur...

Un petit :

compteur++;

dans ta boucle et le tour est joué !

EDIT : Grillé !

-
Edité par didishrek 25 novembre 2014 à 15:33:10

  • Partager sur Facebook
  • Partager sur Twitter
« La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !  » Albert Einstein
25 novembre 2014 à 15:35:08

 Ah non o fait j'ai par erreur supprimer la ligne d'incrémentation compteur++;  mais ça change rien malgré tout.

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
    int succession=0,compteur=0;
    do
    {
        do
        {
            printf("\n\n\t\t\t");
            scanf("%d",&succession);
            printf("\n\n\t\tCompteur vaut %d",compteur);
            compteur++;
        }
        while((succession!=1) && (succession!=2) && (succession!=3));
    }
    while(compteur<4);
    return 0;
}



-
Edité par jersey77176 25 novembre 2014 à 15:35:59

  • Partager sur Facebook
  • Partager sur Twitter
25 novembre 2014 à 15:38:06

mauvaise endroit pour incrémenter ton compteur comme c'est fait maintenant il passe jamais dans la 2nd boucle donc il incrémente jamais

faut le mettre dans la 1ere boucle

oups  désolé je rectifie il y passe 1 fois seulement mais ça reste tout de meme le mauvaise endroit pour incrémenté

-
Edité par Ethernyx 25 novembre 2014 à 15:41:51

  • Partager sur Facebook
  • Partager sur Twitter
Si tu crash sous Windows c'est la faute à Windows. Si tu crash sous Linux c'est ta faute et puis c'est tout
25 novembre 2014 à 15:43:09

Hello,

jersey77176 a écrit:

        while((succession!=1) && (succession!=2) && (succession!=3));

Ecris plutôt : 

 while((succession>0) && (succession<4));

Accessoirement, faire 2 boucles n'a aucun intérêt ici. Il te suffi de rajouter la condition compteur<4 dans la ligne ci-dessus.

-
Edité par Dwarliz 25 novembre 2014 à 15:46:55

  • Partager sur Facebook
  • Partager sur Twitter

Are you watching closely?

25 novembre 2014 à 15:54:26

Exactement c'est ce que je viens d'essayer et c'est parfait merci fraté !!!

while((succession!=1) && (succession!=2) && (succession!=3)&&compteur<4);
  • Partager sur Facebook
  • Partager sur Twitter
25 novembre 2014 à 16:22:17

jersey77176 a écrit:

Exactement c'est ce que je viens d'essayer et c'est parfait merci fraté !!!

Pas de souci.

Pense bien à marquer le sujet comme résolu si c'est le cas ;)



  • Partager sur Facebook
  • Partager sur Twitter

Are you watching closely?

1 juillet 2023 à 23:16:15 - Message modéré pour le motif suivant : Merci d’utiliser le bouton code pour insérer un code sur le forum


1 juillet 2023 à 23:29:03

1) Crée ton propre sujet au lieu de déterrer un vieux sujet de presque 10 ans !

2) Le forum C++, c'est à coté !

3) pour poster du code, utilises le bouton code </> du forum ! (tu peux modifier ton post, lien modifier en haut à droite du post).

  • Partager sur Facebook
  • Partager sur Twitter
...
2 juillet 2023 à 1:15:25

Bonjour,

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

  • Partager sur Facebook
  • Partager sur Twitter