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 :

Problème de division avec Xcode 4.1


Sujet :

C

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 13
    Points : 8
    Points
    8
    Par défaut Problème de division avec Xcode 4.1
    Bonsoir à tous, je me présente je suis un eune étudiant en L1 math-info. Je débute donc tout juste dans la programmation.

    Suite à notre premier contrôle (sur papier !), j'ai voulu vérifier l'exactitude de mes réponses pour un exercice qui demandait d'afficher les sorties écrans d'un programme. J'ai donc recopié le programme dans son intégralité depuis Xcode 4.1. Seulement, à l'éxcution, un problème : La ligne en gras. Fais stopper le programme et affiche le message ci-dessous dans un bordereau vert : Thread 1rogram received signal: "EXC_ARITHMETIC"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    #include <stdio.h>
    #include <math.h>
    
    int main ()
    {
        int a=2, b=3, c=5;
        printf("a=%d, b=%d, c=%d\n", a ,b ,c);
        printf("%d + %d * %d = %d\n", a ,b ,c, a+b*c);
        printf("(%d + %d) * %d = %d\n", a ,b ,c, (a+b)*c);
        printf("%d / %d = %d\n", c, b, c/b);
        printf("%d = %d (%d) \n", c, c%b, b);
        
        a*=b+c; printf("a = %d, b = %d, c = %d\n", a ,b ,c);
        a+=a-c; printf("a = %d, b = %d, c = %d\n", a ,b ,c);
        c-=a-b; printf("a = %d, b = %d, c = %d\n", a ,b ,c);
        a/=b/c; printf("a = %d, b = %d, c = %d\n", a ,b ,c);
        
        b=(c--)+a; printf("a = %d, b = %d, c = %d\n", a ,b ,c);
        c=a+(b++); printf("a = %d, b = %d, c = %d\n", a ,b ,c);
        a=(--b)+c; printf("a = %d, b = %d, c = %d\n", a ,b ,c);
        b=c+(++a); printf("a = %d, b = %d, c = %d\n", a ,b ,c);
        return 0;
    }
    Je ne comprend ni pourquoi il s'affiche, ni ce qu'il veut dire.

    Peut-être pourriez vous au moins m'éclairer ou m'indiquer des pistes de solutions. Merci beaucoup de votre aide.

  2. #2
    Membre éclairé
    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
    Points : 842
    Points
    842
    Par défaut
    Tu dois effectuer une division par 0.

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 131
    Points : 33 065
    Points
    33 065
    Billets dans le blog
    4
    Par défaut
    Bonsoir,

    il s'agit effectivement d'une division par 0 .
    Tu travailles avec des entiers, arrivé à la ligne en gras on a
    b = 3
    c = -19
    mais 3/-19 est ramené à 0, on se retrouve donc à vouloir faire a/0

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Eh bien c'est ce que je pensais au vu des différents forum que j'ai visité mais malheureusement, je suis persuadé de n'avoir de zéro nul part. En effet, lorsque que je compile le programme, Xcode ne m'affiche pas d'erreur mais lorsque je l'exécute, il affiche juste les lignes qui sont au dessus de celle de la division. D'ailleurs, les valeurs de a, b, et c sont respectivement 27, 3 et -19, à la fin de l'instruction précédente.

    Je suis dans le doute ^^ serait-ce à cause du -19 ?

    EDIT :

    Mais c'est bien-sûr : 3/(-19)=0.15.... soit en int 0, ainsi, 27/0 n'existe pas, erreur du programme, fin de l'exécution.

    Juste ?

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    J'en étais certain, merci beaucoup de votre aide en tout cas. J'ai foiré mon exo mais bon... A plus tard dans le forum

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Firebird : Problème de division avec variable
    Par jolijoli dans le forum Langage SQL
    Réponses: 1
    Dernier message: 06/06/2013, 19h16
  2. Problème pour la Division avec NOT EXISTS
    Par myzu69 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 08/11/2007, 15h50
  3. Problème dans requête avec count()
    Par BadFox dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/07/2003, 19h02
  4. [Kylix] problème compilation kylix3 avec redhat 9.0
    Par madininaoursa dans le forum EDI
    Réponses: 1
    Dernier message: 02/07/2003, 17h21
  5. Problèmes de versions avec Xalan, Xerces et Java
    Par honeyz dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 05/06/2003, 11h18

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