Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Autres questions


Index du Forum » Autres questions » Problème de boucle infinie, enfin je crois...
Az Hors ligne Membre de CreativeCalc Points: 548 Défis: 10 Message

Problème de boucle infinie, enfin je crois...

Posté le 14/04/2015 00:47

Pourquoi cette boucle est elle infinie? j'ai placer une erreur sys avant et après pour être sur et maintenant je sais que c'est elle qui empêche mon prog de continuer... :huh:
    [b][blue]do[/blue][/b]{
        local1 = output1%10;
        output1 = (output1-local1)/10;
    } [b][blue]while[/blue][/b] (output1/100>=[maroon]0[/maroon]);



Smashmaster Hors ligne Ancien modérateur Points: 4561 Défis: 253 Message

Citer : Posté le 14/04/2015 01:29 | #


Tu veux faire quoi au juste? je ne comprend pas trop ton code :

local1 = output1%10; [green]//si  output1 == 59, local1 = 59 mod 10 = 9[/green]
output1 = (output1-local1)/10; [green]//(output1-local1)/10 = (59-9)/10 = 5 [/green]


Équivaut à :

output1 = output1 / 10  [green]// (59/10) = 5, même résultat[/green]


car '/' est une division entière.

si (output1 > -100), alors la condition (output1/100>=0) sera toujours vrai, donc il y a une boucle infini.

Essaye ce code sur Visual Studio (ou un autre IDE), tu verras que (output1/100) est toujours plus grand que 0 (attention, output1/100 est une division entière, donc si -100 < output1 < 100, alors output1/100 = 0)

do{
        local1 = output1%10;
        output1 = (output1-local1)/10;
        printf("%d,", output1/100);
} while (output1/100>=0);

Az Hors ligne Membre de CreativeCalc Points: 548 Défis: 10 Message

Citer : Posté le 14/04/2015 01:42 | #


salut et merci, le but de réduire le nombre output 1 jusqu'aux dizaines*, ex: output1 == 1234567 -> 123 ou 567 (un des deux , ça ne me dérange pas)
D’après ce que tu dis c'est ma condition qui ne va pas?
Je fais du Biohacking, des jeux vidéo et j'écris... Un lien pour les controler tous et dans les ténèbres les lier https://linktr.ee/axelfougues
Smashmaster Hors ligne Ancien modérateur Points: 4561 Défis: 253 Message

Citer : Posté le 14/04/2015 01:56 | #


Le problème vient de ta condition

Essaye ça :
} while (output1>1000);



Encore mieux :

output % 1000 //si output == 11591551, (output % 1000) == 551, c'est ce que tu veux?

Az Hors ligne Membre de CreativeCalc Points: 548 Défis: 10 Message

Citer : Posté le 14/04/2015 02:56 | #


la longueur initiale de output n'est pas sure donc je suis oblige d'utiliser une boucle sinon merci pour ton aide , c'est beaucoup plus clair !
Je fais du Biohacking, des jeux vidéo et j'écris... Un lien pour les controler tous et dans les ténèbres les lier https://linktr.ee/axelfougues
Dark storm Hors ligne Labélisateur Points: 11634 Défis: 176 Message

Citer : Posté le 14/04/2015 08:43 | #


Si j'ai bien compris, tu part d'un nombre de taille inconnu, et tu veux uniquement les centaines ? Si c'est ça, Smash à raison, nb % 1000 et c'est fini
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Lephenixnoir Hors ligne Administrateur Points: 24234 Défis: 170 Message

Citer : Posté le 14/04/2015 08:56 | #


Az a écrit :
ex: output1 == 1234567 -> 123 ou 567 (un des deux , ça ne me dérange pas)

Comment ça ça ne te dérange pas ?
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Az Hors ligne Membre de CreativeCalc Points: 548 Défis: 10 Message

Citer : Posté le 14/04/2015 20:18 | #


bah le but est d'obtenir un nb a 3 chiffres pseudo aleatoire qui soit toujours le meme pour un meme nb de depart. positif, et superieur a 100 bien-sur.
Je fais du Biohacking, des jeux vidéo et j'écris... Un lien pour les controler tous et dans les ténèbres les lier https://linktr.ee/axelfougues

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 104 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd