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 en point flottant


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 48
    Par défaut Erreur en point flottant
    Bonjour, je souhaite programmer un petit programme afin de ne garder que les nombres premier d'un tableau de nombre, j'arrive a compiler mon programme mais quand je le lance il m'indique "Exception en point flottant"
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    #include <stdio.h>
     
     
    void afficher(int *tab, int taille_tab)
    {
    int i;
     
            for(i = 0 ; i < taille_tab ; i++)
            {
                    printf("%i ",tab[i]);
            }
     
    printf("\n");
    }
     
    int main(void)
    {
    int i,j;
    int tab[14]={1,2,3,4,5,6,7,8,9,21,45,91,93,109};
    afficher(tab,14);
     
    for(i = 2 ; i < 14 ; i++)
    {
            for( j = i + 1 ; j < 14 ; i++)
            {
                    if ((tab[j] % tab[i] == 0) && !(tab[j]=-1))
                    {
                            tab[j] = -1;
                    }
            }
    }
     
    afficher(tab,14);
     
    return 0;
    }

    merci d'avance pour votre aide precieuse

  2. #2
    Nouveau candidat au Club
    Inscrit en
    Octobre 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 2
    Par défaut
    Citation Envoyé par KaNDeL Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
                    if ((tab[j] % tab[i] == 0) && !(tab[j]=-1))
    Je pense que tu veux vérifier que tab[j] est différent de -1 mais la tu fais une affectation. Et il vaut mieux faire cette vérification en première.
    Sinon l'erreur intervient quand ? Le tableau s'affiche ?
    Et tu peux aussi utiliser gdb qui te permettra de localiser l'erreur.

    Et dans la seconde boucle for t'as du faire une erreur de copier/coller.

  3. #3
    Membre averti
    Inscrit en
    Septembre 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 48
    Par défaut
    mon probleme est resolu mais un autre est apparu, en effet j'ai beau relire 100 fois mon programme et je ne trouve pas ce qui est faux mais pourtant quand je le lance il m'affiche:

    0 1 2 3 4 5 6 7 8 9 10 11 12 13
    0 1 2 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1

    alors que 5 est premier et que 5 modulo 2,3 ou 4 ne vaut pas zero

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    #include <stdio.h>
     
     
    void afficher(int *tab, int taille_tab)  // Fonction qui permet d'afficher le tableau
    {
    int i;
     
            for(i = 0 ; i < taille_tab ; i++)
            {
                    printf("%i ",tab[i]);
            }
     
    printf("\n");
    }
     
    int main(void)
    {
    int i,j;
    int N;
    N = 14;
    int tab[N];
    for( i = 0 ; i < N ; i++)  // afin de remplir le tableau
    {
            tab[i]=i;
    }
     
    afficher(tab,N);
    for(i = 2 ; i < N ; i++)
    {
            for( j = i + 1 ; j < N ; j++)
            {
                    if ((tab[j] % tab[i] == 0) && !(tab[j]==-1))   // si tab[j] est un multiple de tab[i] alors on affecte -1 a tab[j]
                    {
                            tab[j] = -1;
                    }
            }
    }
    afficher(tab,N);
    return 0;
    }
    Merci d'avance de votre aide

  4. #4
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    tab[j] % tab[i] donnera 0 si tab[i] est égal à -1 quel que soit tab[j] :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ((tab[j] % tab[i] == 0) && !(tab[i]==-1))
    ou encore :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for(i = 2 ; i < N ; i++)
       if( tab[i]!=-1)
          for( j = i + 1 ; j < N ; j++)
             if (tab[j] % tab[i] == 0)  tab[j] = -1;

  5. #5
    Membre averti
    Inscrit en
    Septembre 2008
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 48
    Par défaut
    merci beaucoup c'est bon ca marche

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

Discussions similaires

  1. Gerer l'erreur du point apres l'arobase
    Par DjChat dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 21/04/2008, 11h35
  2. message d'erreur le point d'entree de procedure smapls est introuvable
    Par moimemepersonnelleme dans le forum Windows Vista
    Réponses: 0
    Dernier message: 28/02/2008, 16h18
  3. Erreur de calcul flottant
    Par saimonn dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/08/2007, 16h26
  4. [XPath] « Points flottants » ailleurs qu'à la racine ?
    Par Hibou57 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 11/07/2007, 17h41
  5. Erreur de virgule flottante
    Par pierrot67 dans le forum Bases de données
    Réponses: 3
    Dernier message: 13/12/2006, 19h42

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