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 :

Remplir un tableau de 16 cases avec une boucle for


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif 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
    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;
    }

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

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 765
    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
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 : 12 830
    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 «Python»
    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
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Membre actif 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
    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

  5. #5
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    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 : 5 202
    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.

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

Discussions similaires

  1. Remplir mon arrayList avec une boucle for?
    Par kolann dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 10/11/2010, 12h04
  2. [String] Remplir un tableau de String à partir d'une boucle "for"
    Par dev197 dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 12/08/2009, 15h29
  3. Présentation d'un tableau avec une boucle for()
    Par Jarodd dans le forum Langage
    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 Langage
    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