Boucle infinie en C
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

Boucle infinie en C



  1. #1
    Atry

    Boucle infinie en C


    ------

    Bonjour à tous.
    Alors j'ai un petit problème, c'est à dire que j'ai un exercice d'informatique où je dois faire apparaitre quelque chose ressemblant à ceci:

    *****.....*
    ***.......*
    *****
    ****
    ***
    **
    *

    Le tout sur un nombre n de lignes. Le problème est que j'obtiens une boucle infinie dans mon programme, et , j'ai beau chercher, je n'arrive pas à trouver où est le problème.
    Voici le code de ma fonction :


    Code:
    #include "motifs2.h"
    #include <iostream>
    using namespace std;
    
    
    void Motifs2(unsigned int n)
    {
    	unsigned int i, j;
    	i = 0;
    	j = n;
    	while (i <= n - 1)
    	{
    		while (j >= i)
    		{
    			cout << "*";
    			j = j - 1;
    		}
    		cout << endl;
    		i = i + 1;
    	}
    }
    L'erreur est peut être toute bête, mais je n'arrive pas à la trouver. En espérant que quelqu'un puisse m'aider. Merci d'avance !

    -----
    Dernière modification par JPL ; 12/11/2016 à 23h15. Motif: Ajout de la balise Code (#) pour garder l'indentation

  2. #2
    jiherve

    Re : Boucle infinie en C

    Bonsoir
    Amha à un moment j vaudra -1 .i. e 0xFFFFFFFF -1 et never ending ou presque car ce sont des unsigned fait le test à la mano avec n = 2, il faut "recharger" j pour chaque tour de i
    Code:
    void Motifs2(unsigned int n)
    {
    unsigned int i, j;
    i = 0;
    
    while (i <= n - 1)
      {
         
         j = n;
         while (j >= i)
          {
             cout << "*";
             j = j - 1;
          }
         cout << endl;
         i = i + 1;
       }
    }
    utilise les balises code accessibles en mode avancé et indente cela aide à la lecture.
    JR
    l'électronique c'est pas du vaudou!

  3. #3
    Atry

    Re : Boucle infinie en C

    J'obtiens la même chose comme ça, j'avais déjà essayé cette solution, mais toujours une boucle infinie :'(
    J'ai l'impression que c'est dans la boucle Tant que (j >= i) que le problème se trouve car je n'ai à aucun moment de retour à la ligne.
    Merci quand même, et désolé pour l'indentation, j'avais simplement copié/collé mon code (qui était indenté sur mon logiciel mais ça ne l'a pas affiché ici) , j'y ferais attention par la suite

  4. #4
    Atry

    Re : Boucle infinie en C

    Ah enfin, merci j'avais en effet un problème en initialisant i à 0. Le problème est résolu, merci beaucoup de votre aide

  5. A voir en vidéo sur Futura
  6. #5
    Chanur

    Re : Boucle infinie en C

    j est un unsigned
    quand i est égal à 0, la condition j>=i est vraie quelque soit la valeur de j

    au début, j vaut 0 (donc >=0), quand on lui soustrait 1, il vaut 4294967295 qui est aussi supérieur à 0.
    Ce qui se conçoit bien s'énonce clairement ; et les mots pour le dire arrivent aisément.

Discussions similaires

  1. relation entre gain statique en boucle ouverte et celui en boucle fermee
    Par invite21730e48 dans le forum Électronique
    Réponses: 4
    Dernier message: 29/09/2014, 20h47
  2. problème boucle interruption avec boucle spi
    Par invitef9a5b0e0 dans le forum Électronique
    Réponses: 8
    Dernier message: 16/03/2013, 02h26
  3. Diagramme de Bode boucle ouverte et boucle fermée
    Par invite29a24ce3 dans le forum Physique
    Réponses: 4
    Dernier message: 21/06/2012, 13h24
  4. Boucle infinie qui s’achève ?!
    Par invitec5337bc1 dans le forum Électronique
    Réponses: 2
    Dernier message: 28/01/2012, 11h26
  5. l'univers infinie, une énergie infinie?
    Par invite96f882ef dans le forum Physique
    Réponses: 38
    Dernier message: 12/12/2010, 10h58