1. #1
    Nouveau membre du Club Avatar de johntheripper
    Homme Profil pro
    Étudiant
    Inscrit en
    mars 2016
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : mars 2016
    Messages : 43
    Points : 33
    Points
    33

    Par défaut Remplir un tableau de 16 cases avec une boucle for

    Bonsir a tous j'ai un programme que je veux mettre en place
    c'est un tableau de 16 cases don la 1ere cases je l'ai initialisé a 4 et le reste des 15 autres cases sont a 0
    le but de ce programme est que les autres cases doivent etre rempli par des nombres aleatoires compris de 0-10 a l'aide d'une boucle For()
    Voici l'exemple du programme mais ce que moi jai fait je l'ai fait case par case mais j'aimerais rempli les cases de mon tableau a l'aide d'une boucle For comment fait??


    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    #define TAILLE 16
     
    int remplissage(int tb[], int taille);
     
    int main (){
      int tab[TAILLE] = {4};
      for (int i = 0; i<TAILLE; i++){
        remplissage(tab, TAILLE);
        printf("%d",tab[i]);
      }
      printf("\n\n");
      return 0;
    }
     
    int remplissage(int tb[], int taille){
      srand(time(NULL));
      çtb[1] = rand()%10;
      tb[2] = rand()%10;
      tb[3] = rand()%10;
      tb[4] = rand()%10;
      tb[5] = rand()%10;
      tb[6] = rand()%10;
      tb[7] = rand()%10;
      tb[8] = rand()%10;
      tb[9] = rand()%10;
      tb[10] = rand()%10;
      tb[11] = rand()%10;
      tb[12] = rand()%10;
      tb[13] = rand()%10;
      tb[14] = rand()%10;
      tb[15] = rand()%10;
    }
    Au délà des codes de language, il y a la reflexion!

  2. #2
    Expert confirmé Avatar de ed73170
    Homme Profil pro
    Développeur indépendant
    Inscrit en
    mai 2009
    Messages
    670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur indépendant

    Informations forums :
    Inscription : mai 2009
    Messages : 670
    Points : 4 698
    Points
    4 698

    Par défaut

    Bonjour,

    Ce n'est pas bien compliqué :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    void remplissage(int tb[], int taille)
    {
      srand(time(NULL));
      for(int i = 1; i<taille; i++)
        tb[i] = rand()%10;
    }
    Par contre ton appel à remplissage n'est pas correct car tu fais l'initialisation 16 fois, ceci suffit largement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    int main ()
    {
      int tab[TAILLE] = {4};
      remplissage(tab, TAILLE);
     
      for (int i = 0; i<TAILLE; i++)
        printf("%d",tab[i]);
     
      printf("\n\n");
      return 0;
    }

  3. #3
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2006
    Messages
    5 828
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : février 2006
    Messages : 5 828
    Points : 16 021
    Points
    16 021
    Billets dans le blog
    1

    Par défaut

    Citation Envoyé par johntheripper Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      for (int i = 0; i<TAILLE; i++){
        remplissage(tab, TAILLE);
        printf("%d",tab[i]);
      }
    Bonjour

    Au delà de la connaissance du langage (syntaxe de la boucle "for", etc), il y a la logique et la réflexion. Tu devrais "sentir" que ici il y a quelque chose de choquant. En effet, tu insères une fonction dédiée à remplir "tout" le tableau dans une boucle dédiée à afficher "une case" du tableau. Rien que là ça aurait dû te faire "tilt" quand tu as écrit ce code en te disant "mince, ça va remplir 16 fois mon tableau entier !!!"...

    Sinon je ne vois pas en quoi tu bloques. Tu as su afficher une case tab[i] dans une boucle, tu aurais dû tout autant savoir remplir cette même case tab[i] dans une autre...
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site

  4. #4
    Nouveau membre du Club Avatar de johntheripper
    Homme Profil pro
    Étudiant
    Inscrit en
    mars 2016
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : mars 2016
    Messages : 43
    Points : 33
    Points
    33

    Par défaut

    en fait j'ai fait ce que vous m'aviez indiquez et le code marche propremement
    mais j'aimerais savoir comment aviez vous detecter que je remplir le tableau 16 fois. ce n'est pas encore bien claire dans mon esprit. j'adore les critiques et sans les critiques je ne serais jamais meilleur
    quelque soit la question stupide que je demande il doit y avoir une reponse nette. Merci besoin d'explication
    Au délà des codes de language, il y a la reflexion!

  5. #5
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    juin 2007
    Messages
    4 935
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : juin 2007
    Messages : 4 935
    Points : 16 360
    Points
    16 360

    Par défaut

    Tu fais une boucle.
    Ce qui est dans l'accolade est fait à chaque pas de la boucle.
    La fonction remplit tout le tableau (ca se voit parce que i n'est pas dans l'appel)

    Donc, lors de chacun des 16 pas de la boucle, tu fais la même chose.
    C'est généralement une mauvaise idée.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

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

Discussions similaires

  1. Remplir mon arrayList avec une boucle for?
    Par kolann dans le forum java.util
    Réponses: 2
    Dernier message: 10/11/2010, 12h04
  2. Réponses: 7
    Dernier message: 12/08/2009, 15h29
  3. Présentation d'un tableau avec une boucle for()
    Par Jarodd dans le forum Syntaxe
    Réponses: 2
    Dernier message: 19/12/2008, 11h39
  4. [PHP 5.0] Complèter un tableau avec une boucle "for"
    Par kriekbellevue dans le forum Syntaxe
    Réponses: 1
    Dernier message: 07/12/2008, 22h04
  5. : remplir des zones de texte avec une boucle For
    Par Haro_GSD dans le forum Access
    Réponses: 3
    Dernier message: 20/09/2005, 21h23

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