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 :

afficher un Tableau


Sujet :

C

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 371
    Points : 65
    Points
    65
    Par défaut afficher un Tableau
    bonjour a tous

    voici mon probleme
    jarrive a afficher toutes les valeurs d'un tableau via une boucle itérative, pas de soucis cependant

    avec un tableau comme le suivant : peut ton afficher tout le tableau avec :

    en fait ca maffiche ladresse du tableau a priori

    voila

    jespere avoir un peu daide

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Pugebad Voir le message
    jarrive a afficher toutes les valeurs d'un tableau via une boucle itérative, pas de soucis cependant

    avec un tableau comme le suivant : peut ton afficher tout le tableau avec :

    Il semblerait que ta touche ['] ne fonctionne plus...

    Non, on ne peut pas afficher un tableau d'entier autrement que par une boucle, ce qui est un peu logique, chacun voulant une apparence différente de l'autre, ce qui n'est pas le cas des chaines où les choses sont claires ("%s").
    Pas de Wi-Fi à la maison : CPL

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 371
    Points : 65
    Points
    65
    Par défaut
    pas possible dafficher sous forme de tableau avec des cases
    les tableaux ne servent pas a grand chose alors

  4. #4
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 119
    Points
    28 119
    Par défaut
    Bonjour,

    Citation Envoyé par Pugebad Voir le message
    pas possible d'afficher sous forme de tableau avec des cases
    les tableaux ne servent pas a grand chose alors
    Que souhaites-tu faire exactement ? Ce n'est pas parce que tu n'as pas trouvé la solution immédiatement qu'il n'existe pas un moyen pour y arriver !

    Tu parles de tableau avec des cases... Est-ce que cela sous-entends l'utilisation d'une couche graphique dans ton programme ? Si oui, laquelle utilises-tu ? Si non, souhaites-tu afficher chaque nombre dans une "case" dans un terminal ?
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 371
    Points : 65
    Points
    65
    Par défaut
    oui voila , je suis etudiant depuis peu en info , dans ma tete je pensais qu'en arlant de tableau unidimensionnel ou plus , on parlait de caractere dans des cases

    pour le moment on bosse en console gangsoleil
    en interface graphique c'est certain quon pusse mais la en console
    je me faisais trop d'idées


    par contre si tu sais comment faire je suis prenant

    petite aparté , je viens de coder un exo sur un tableau ... on nous demande de trier n nombres saisis , le tris n'est pas un probleme en fait je bloque sur un truc c'est la declaration du tableau et la valeur max
    car avec n nombres je bloque sur la taille
    bref je met mon code dites moi se que vous en pensez :

    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
    void tableau_n(){
            int choix;
            int i;
            int k;
            int tab_n[k+1]={0};
            i=1;
            k=0;
     
     
                  do {
                  printf("\nEntrer une valeur : ");
                  scanf("%d",&tab_n[k]);
                  printf("\nEntrer une nouvelle valeur ? (1 pour oui) ");
                  scanf("%d",&choix);
                  if (choix==1) {
                    k++;
                    i++;
                  }
            }while (choix==1);
            for (k=0;k<=i;k++) {
                    printf("\n%d\n",tab_n[k]);
            }
            getch();
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [C++ Erreur] algo8a.c(73): E2313 Expression constante nécessaire

    davance merci

  6. #6
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 23
    Points : 15
    Points
    15
    Par défaut
    Bonjour,

    ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int tab_n[k+1]={0};
    Ce n'est pas possible. Le compilateur pense que k correspond à une valeur constante.
    Tu ne peux pas gérer dynamiquement la taille d'un tableau.
    Il va falloir passer par une allocation mémoire : malloc - realloc

  7. #7
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 23
    Points : 15
    Points
    15
    Par défaut
    Tu peux en profiter aussi pour tester les listes chaînées.
    Ca se prête bien à ton exemple où l'on ne sait pas à l'avance combien de cases va contenir ton tableau.
    A chaque passage dans la boucle, on cré un noeud et on le rajoute à la liste.

    Tu as déjà appris le principe des listes chaînées ?

  8. #8
    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 : 47
    Localisation : Suisse

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    Par défaut
    Voici quelques corrections:

    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    #include <stdio.h>
     
    /* -tc- constante symbolique representant le nombre d'elements du tableau */
    #define TAB_MAX_ELEMS 20
     
    void clean(void)
    {
        int c;
     
        while ((c = fgetc(stdin)) != '\n' && c != EOF)
        {
        }
    }
     
    void tableau_n(void)
    {
        int choix = 1;
        int nelems = 0;
        int i = 0;
        /* -tc-
        k n'est pas initialise et, pas ailleurs, n'est pas une expression constante.
        A moins de vouloir un tableau a taille variable comme les VLA de C99 ou du
        GNU C, tu dois utiliser une expression constante pour definir la taille
        d'un tableau. Si celle-ci n'est pas connue a la compilation, utilises
        l'allocation dynamique de memoire.
     
        int tab_n[k+1] = {0};
        */
        int tab_n[TAB_MAX_ELEMS] = {0};
     
        do
        {
            int rv;
     
            /* -tc- saisie securisee d'un entier a stocker dans le tableau */
            do
            {
                printf("Entrer une valeur : ");
                fflush(stdout);
                /* -tc- toujours tester la valeur retournee par scanf(). Cette
                   valeur represente le nombre de valeurs effectivement converties
                   et permet de savoir si scanf() a fait correctement son travail */
                rv = scanf("%d",&tab_n[i]);
                i++;
                /* -tc- nettoyer le flux d'entree standard apres usage de scanf() */
                clean();
            }
            while (rv != 1);
     
            /* -tc- saisie securisee de la valeur 1 ou 0 */
            do
            {
                printf("Entrer une nouvelle valeur ? (1: oui 0: non) ");
                fflush(stdout);
                rv = scanf("%d",&choix);
                clean();
            }
            while (rv != 1 || choix < 0 || choix > 1);
        }
        while (choix == 1 && i < TAB_MAX_ELEMS);
     
        /* -tc- on memorise le nombre d'elements du tableau */
        nelems = i;
     
        for (i = 0; i < nelems ; i++)
        {
            printf("%d\n",tab_n[i]);
        }
     
        /* -tc- getch() est inutile ici et pas standard */
    }
     
    int main(void)
    {
        tableau_n();
        return 0;
    }
    Citation Envoyé par Pugebad Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [C++ Erreur] algo8a.c(73): E2313 Expression constante nécessaire
    davance merci
    Tu utilises un compilateur C++ pour compiler ton code C?

    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++

    +

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 371
    Points : 65
    Points
    65
    Par défaut
    thierry ton truc est parfait mais n'y a t-il pas plus simple ?

    si non , non on a pas vu les listes chainees ca consiste en quoi?

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Pugebad Voir le message
    thierry ton truc est parfait mais n'y a t-il pas plus simple ?
    En C sérieux et stable, non. Le C est un langage de base. Beaucoup de détails doivent être gérés par le programmeur. Heureusement, on apprend vite à faire des fonctions solides et à cacher proprement tous ces détails...
    si non , non on a pas vu les listes chainees
    Alors il est un peu tôt...
    Pas de Wi-Fi à la maison : CPL

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 371
    Points : 65
    Points
    65
    Par défaut
    le truc c'est que je suis motivé
    alors si quelqun veut mexpliquer vite fait ou un lien ?

  12. #12
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Citation Envoyé par Pugebad Voir le message
    le truc c'est que je suis motivé
    alors si quelqun veut mexpliquer vite fait ou un lien ?
    Si t'es motivé c'est déjà une bonne, reste plus que des tutoriels et y'en a ici: http://c.developpez.com/cours/#tutoriels-c
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

Discussions similaires

  1. [TP] [Débutant] Afficher un tableau en mode graphique
    Par xiungung dans le forum Turbo Pascal
    Réponses: 6
    Dernier message: 13/01/2006, 22h13
  2. Réponses: 3
    Dernier message: 26/09/2005, 22h24
  3. Comment afficher un tableau dans TStringGrid ?
    Par doubledj dans le forum Composants VCL
    Réponses: 3
    Dernier message: 19/09/2005, 02h21
  4. Réponses: 2
    Dernier message: 03/03/2005, 14h57
  5. AFFICHER UN TABLEAU DYNAMIQUE
    Par ghassenus dans le forum Langage
    Réponses: 2
    Dernier message: 28/12/2002, 14h19

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