IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

erreur de syntaxe et valeur invalide?


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 10
    Par défaut erreur de syntaxe et valeur invalide?
    J'essaie de coder, avec ce que je sais, un programme qui permettrait de faire fonctionner chaque chiffre, 1 par 1, avec l'algorithme de Collatz (ou Syracuse pour que ça parle plus). Je ne sais si mon code est vraiment bon, mais après l'avoir travaillé sur manuscrit, je pense qu'il ne doit plus me manquer grand chose.
    Il y a quand même un petit problème, après compilation mon IDE m'indique 2 erreurs que je n'arrive vraiment pas à retrouver =/.


    Voici donc mon code:




    Et les 2 erreurs:





    Merci d'avance pour votre aide!

  2. #2
    Membre émérite
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Par défaut


    Tu as des balises de code pour poster ton code sur le forum (le signe '#' juste au dessus de là où tu écris ton message).

    Dans ton if il faut faire attention à = et ==.
    = sert pour l'affectation,
    == sert pour la comparaison.

    Pour l'erreur du else c'est que tu n'as pas ouvert d'accolades pour ton if
    Si tu ne mets pas d'accolades il faut qu'il y ai une seule instruction après le if, sinon il faut mettre des accolades.

  3. #3
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 084
    Par défaut
    while(1) ?

    Tu n'as pas trop de probleme pour arreter ton programme ?

    Le mieux serait de faire un booleen "continuer" qui prendrait 1 a l'initialisation et 0 quant tu veux sortir.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 10
    Par défaut
    Oui c'est parce que, en fait, l'algorithme de collatz vérifie que pour tout nombre inférieur ou égal a 2 puissance 51, chacun d'entre eux, algorithmé de cette façon arrive à 1 au bout d'un moment, à partir de ce moment le résultat est toujours 1.
    Sauf les ordinateurs n'ont justement pas vérifier au-dessus de ce nombre (2 puissance 51), et moi je voudrais aller au dessus de ça.
    C'est pourquoi, j'ai utilisé la boucle infinie, pour pas avoir a faire une manip a chaque fois (je connais que ça ^^). Mais merci du conseil, je vais en prendre compte =).

    Mon problème maintenant, c'est qu'au début de la boucle, après la première, je veux remplacer le nombreChoisi, par le nombreObtenu.

    C'est à dire, par exemple, si le nombre était pair (nombreChoisi % 2 == 0), on l'a diviser par 2 (nombreChoisi / 2). Sauf que l'algorithme de collatz ne dit pas de re-choisir un nombre à la fin des instructions, c'est le nombre qu'on a obtenu précédemment qu'on doit traiter ensuite dans l'algorithme, et ainsi de suite.

    Là, mon code actuel me traite toujours le même chiffre (nombreChoisi)...
    La première fois c'est bon, mais après je voudrais que ce soit le nombreObtenu après l'opération qui soit traité à la place du premier nombreChoisi.

    J'espère être assez clair, car j'ai pas l'impression xD.

  5. #5
    Membre émérite
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Par défaut
    (j'ai rien compris )
    Mais si tu veux gérer des grands nombres je t'invite à aller voir du côté de la librairie GMP qui est spécialisé là-dedans si je puis dire ^^

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 10
    Par défaut
    Lol non t'inquiètes ça n'a rien à voir avec un grand nombre mon problème, je vais te montrer l'algorithme en langue française et faire le rapprochement pour que tu comprennes mieux :

    "Etape 1: Choisir un nombre entier (donnée, ou entrée)

    Etape 2: Répéter la procédure suivante:

    -Si le nombre est pair, le diviser par 2
    -Si le nombre est impair, le multiplier par 3 puis ajouter 1,
    -Remplacer le nombre du départ par le nombre ainsi obtenu."

    Quand on a choisi un chiffre au départ, par exemple 17, au bout d'un certain moment l'algorithme s'arrête car le résultat est toujours 1.

    Sauf que la dernière instruction de cet algorithme c'est qu'il faut remplacer le nombre du départ par le nombre obtenu après les calculs: c'est avec lui que l'on va recommencer la série de calcul, et ainsi de suite...

    Mon problème: je ne sais pas comment faire pour recommencer ma boucle (en C) avec le chiffre obtenu après les calculs, comme l'algorithme dit de faire..

    ça va là? =)

Discussions similaires

  1. Erreur de syntaxe lors de la conversion d'une valeur datetime
    Par info3licen dans le forum Débuter avec Java
    Réponses: 10
    Dernier message: 28/05/2011, 01h31
  2. [Turbo Pascal] [Débutant] Erreur de syntaxe (valeur absolue d'un entier)
    Par yupi_yupi dans le forum Turbo Pascal
    Réponses: 3
    Dernier message: 07/10/2010, 21h02
  3. [PHP-JS] Erreur de syntaxe récupération valeur dans variable PHP
    Par sosophie dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 13/04/2007, 12h33
  4. [Directives] Page blanche quand erreur de syntaxe
    Par syl2095 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 12
    Dernier message: 17/02/2006, 15h15
  5. erreur de syntaxe javascript dans ma page
    Par Oluha dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 01/02/2005, 14h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo