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 avec un tableau à 2dimensions


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de _SamSoft_
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    798
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 798
    Par défaut Problème avec un tableau à 2dimensions
    Bonjour, voilà mon problème : Je n'arrive pas à créer une boucle permettant d'assigner des valeurs à des indices, enfin j'ai créé le tableau mais rien ne se passe c'est donc que j'ai oublié un truc (comme je suis débutant en matière de tableau ).

    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
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    int main(int argc, char *argv[])
    {
      int tab[10][10], i=0, j=0, k=0;
      size_t sizeOfTab = sizeof tab;
      fprintf(stdout, "%l\n", sizeOfTab);
      for(k;k++;k<100)
      {
          i++;
          j++;
          fprintf(stdout, "\n%u", i);
          fprintf(stdout, "\n%u", j);
          tab[i][j] = k;
          fprintf(stdout, "%u", tab[i][j]);
      }
      getch(); 
      return 0;
    }
    De plus la taille du tableau n'apparaît pas.

    Merci d'avance

  2. #2
    Membre émérite Avatar de stephl
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 643
    Par défaut
    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    int main(int argc, char *argv[])
    {
      int tab[10][10], i=0, j=0, k=0;
      size_t sizeOfTab = sizeof tab;
      fprintf(stdout, "%u\n", sizeOfTab);
      for(k;k<100;k++)
      {
          i=k/10;
          j=k%10;
          fprintf(stdout, "\n%u", i);
          fprintf(stdout, "\n%u", j);
          tab[i][j] = k;
          fprintf(stdout, "%u", tab[i][j]);
      }
      getch(); 
      return 0;
    }

  3. #3
    Membre éclairé Avatar de _SamSoft_
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    798
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 798
    Par défaut
    Merci mais pourquoi avoir mis :

    k/10 et ensuite k%10

  4. #4
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Je trouve tout de même plus lisible (plus proche des intentions du programmeur) d'utiliser deux boucles imbriquées:

    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
    #include <stdio.h>
    #include <stdlib.h>
     
    #define NB_ELEMS(array) ( sizeof (array) / sizeof *(array) )
     
    int main(void)
    {
        int my_array[3][4] = {{0}};
        size_t i, j; /* loop indexes */
     
        for (i = 0; i < NB_ELEMS(my_array); i++)
        {
            for (j = 0; j < NB_ELEMS(*my_array); j++)
            {
                my_array[i][j] = i * NB_ELEMS(*my_array) + j;
                printf("%d ", my_array[i][j]);
            }
            printf("\n");
        }
     
        return EXIT_SUCCESS;
    }
    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  5. #5
    Membre éclairé Avatar de _SamSoft_
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    798
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 798
    Par défaut
    Ah oui ! Je viens de voir Je vais prendre cette solution ! Merci
    Mais pourquoi avait il mis k/10 et ensuite k%10 (division et modulo ?)

  6. #6
    Membre émérite Avatar de stephl
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 643
    Par défaut
    Citation Envoyé par _SamSoft_ Voir le message
    Ah oui ! Je viens de voir Je vais prendre cette solution ! Merci
    Mais pourquoi avait il mis k/10 et ensuite k%10 (division et modulo ?)
    Pour récupérer les indices i et j.

  7. #7
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par _SamSoft_ Voir le message
    Ah oui ! Je viens de voir Je vais prendre cette solution ! Merci
    Mais pourquoi avait il mis k/10 et ensuite k%10 (division et modulo ?)
    Pour recalculer les indices...

    k/10 augment de 1 tous les 10 k
    k%10 varie de 0 à 9 quelque soit la valeur de k

    Fais des tests à part avec des printf...

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 24/05/2006, 08h59
  2. Problème avec redimensionnement tableau
    Par PoZZyX dans le forum Réseau
    Réponses: 18
    Dernier message: 20/04/2006, 15h46
  3. Problème avec un tableau et saut de ligne
    Par ero-sennin dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 08/03/2006, 18h48
  4. Problème avec un tableau de tableau
    Par SubZero2 dans le forum Langage
    Réponses: 4
    Dernier message: 07/12/2005, 15h25
  5. problème avec un tableau dans un insert ...
    Par vbcasimir dans le forum Langage
    Réponses: 3
    Dernier message: 02/11/2005, 14h31

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