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 boucle


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2
    Par défaut Problème de boucle
    Bonjour,

    Je dois faire un programme en C, en commençant par initialiser un vecteur de 1000 éléments à l'aide d'une boucle, je dois ensuite mettre tout les éléments du vecteur qui ne sont pas des nombres premier à 0, et ensuite n'afficher que les nombres premier.

    le code que j'ai écrit passe la compilation sans erreur, mais plante a l'exécution. Je soupçonne la double boucle imbriqué d'en être responsable.

    Pourriez vous jeter un œil a mon code et me dire ce qui ne va pas.

    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
    41
    42
    43
    44
    45
    #include <stdio.h>
    #include <stdlib.h>
     
    int main()
    {
        int tab[1000];
        int i=0;
        int j=0;
        int max=1000;
        int n=0;
     
        while (i<max)
        {
            tab[i]=i+1;
            i++;
        }
        i=2;
        j=2;
        while (i<500)
        {
            while (j<500)
            {
                n=i*j;
                tab[n]=0;
                j++;
            }
            i++;
            j=2;
        }
        i=1;
        while (i<max)
        {
            if (tab[i] != 0)
                {
                    printf("%d\n",tab[i]);
                    i++;
                }
                else
                {
                    i++;
                }
        }
     
        return 0;
    }
    merci beaucoup

  2. #2
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2
    Par défaut
    bon ok, 500 *500 dans un vecteur de 1000, c limite.

  3. #3
    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 un problème ici : n=i*j;
    En effet quand i et j deviennent un tout petit peu grands, tu fais un joli dépassement. Tu vas au delà de ton tableau
    i = 3 j = 334 n = 1002 (et encore c'est une petite valeur).
    Il faut que tu règles ça déjà.

Discussions similaires

  1. Problème de boucles imbriquées
    Par Gnux dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 09/12/2005, 20h26
  2. [Tableaux] Problème avec boucle
    Par MYster dans le forum Langage
    Réponses: 6
    Dernier message: 11/11/2005, 18h39
  3. Problème de boucle
    Par TheUltimaSephiroth dans le forum C
    Réponses: 8
    Dernier message: 10/10/2005, 13h58
  4. Problème de boucle
    Par Louis-Guillaume Morand dans le forum Langage SQL
    Réponses: 3
    Dernier message: 25/09/2005, 09h10
  5. Problème de boucle
    Par basclln dans le forum C++
    Réponses: 19
    Dernier message: 02/04/2005, 09h13

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