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 :

tableau double entrée


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 33
    Points : 20
    Points
    20
    Par défaut tableau double entrée
    Bonjour/soir à tous

    Voilà j'ai un tableau double entrée et je veux afficher ce qu'il y a dedans de maniere lisible sous forme d'un tableau classique type excel

    ex :
    4 3 2
    5 2 0
    1 2 3

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for (rangee=0 ;rangee<=n-1; ++rangee)
     
            for (colonne=0;colonne<=n-1;++colonne)
     
    printf("%3d",carre[rangee][colonne]);
    en fait j'arrive pas à aller à la ligne quand je suis arrivé . Attention j'ai un tableau n*n . faut prendre n en paramètre

    Voila , merci d'avance si vous savez et que répondez à ma question

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonsoir
    Suffit de mettre "\n" à la fin de chaque rangée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    for (rangee=0 ;rangee<=n-1; ++rangee)
    {
      for (colonne=0;colonne<=n-1;++colonne)
      {
        printf("%3d",carre[rangee][colonne]); 
      }
      printf("\n");
    }

  3. #3
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut Re: tableau double entrée
    Citation Envoyé par Andrey
    Bonjour/soir à tous

    Voilà j'ai un tableau double entrée et je veux afficher ce qu'il y a dedans de maniere lisible sous forme d'un tableau classique type excel

    ex :
    4 3 2
    5 2 0
    1 2 3

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for (rangee=0 ;rangee<=n-1; ++rangee)
     
            for (colonne=0;colonne<=n-1;++colonne)
     
    printf("%3d",carre[rangee][colonne]);
    en fait j'arrive pas à aller à la ligne quand je suis arrivé . Attention j'ai un tableau n*n . faut prendre n en paramètre

    Voila , merci d'avance si vous savez et que répondez à ma question
    Tu veux juste un retour chariot c'est ca?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for (rangee=0 ;rangee<=n-1; ++rangee) {
        for (colonne=0;colonne<=n-1;++colonne)
            printf("%3d ",carre[rangee][colonne]); // ajout d'un espace
        printf("\n"); // retour chariot
    }
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 33
    Points : 20
    Points
    20
    Par défaut
    Merci bcp

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 52
    Points : 44
    Points
    44
    Par défaut
    j'aurais dit

    printf est une fonction que je trouve capritieuse au niveau memoire et l'utiliser seulement pour un retour chariot...
    Dans un ptit prog c'est pas grave mais si le prog commence a etre d'une grosse envergure on se retrouve vite fait avec des segfault mystiques parce que on sort de la pile mais printf nous sauve les miches, et quand on l'enleve sa ne marche plus, des choses dans ce genre.

    ou alor :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    for (rangee=0 ;rangee<=n-1; ++rangee) 
    { 
      for (colonne=0;colonne<=n-1;++colonne) 
      {
        printf("%3d\n",carre[rangee][colonne]); 
      } 
    }
    sa evite de faire deux printf pour rien...

  6. #6
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    bonjour,
    Citation Envoyé par leptityugi
    On ai pas en pascal ici

    Citation Envoyé par leptityugi
    printf est une fonction que je trouve capritieuse au niveau memoire et l'utiliser seulement pour un retour chariot...
    Dans ce cas :
    Encore mieux :
    Citation Envoyé par leptityugi
    on se retrouve vite fait avec des segfault mystiques parce que on sort de la pile mais printf nous sauve les miches, et quand on l'enleve sa ne marche plus, des choses dans ce genre.
    ça ressemble à un comportement indéfini! Un dépassement de pile sans utiliser la récurssion faut y allez fort.

  7. #7
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    Citation Envoyé par leptityugi
    ou alor :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    for (rangee=0 ;rangee<=n-1; ++rangee) 
    { 
      for (colonne=0;colonne<=n-1;++colonne) 
      {
        printf("%3d\n",carre[rangee][colonne]); 
      } 
    }
    Non ce n'est pas la même chose, ici tu passe une ligne à chaque valeur alors que le code de mabu passe une ligne à chaque ligne du tableau affichée.

    Faut arréter de se préoccuper de l'utilisation des ressources, il s'agit d'un exercice surement réalisé sur PC de bureau donc il vaut mieux privilégier la lisibilité et s'il faut ajouter un printf (même pour un simple saut de ligne), c'est pas génant! Le C n'est pas le plus bas langage de haut niveau pour rien, il est proche de l'assembleur donc les programmes écrit en C demandent peut de resources par rapport à d'autres langages plus "évolués"

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 52
    Points : 44
    Points
    44
    Par défaut
    la fonction putc c'est quoi??

    juste un

    et c est un caractere envoyer en parametre

    et la fonction puts??
    juste une boucle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while (str[i])
    {
    write(1, str[i], 1)
    }
    ou
    str une chaine de caractere et strlen sa taille

    sa evite juste un appel de fonction.

    et je suis d'accord qu'il faut faire fort pour peter une pile mais sa arrive.
    j'ai dit dans les gros prog,... il peu y avoir de la recursion.

    et excat pour le \n dans le printf j'ai pas fait gaffe dsl

  9. #9
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    Citation Envoyé par leptityugi
    la fonction putc c'est quoi??
    Citation Envoyé par leptityugi
    et la fonction puts??
    man putc
    man puts

    Citation Envoyé par leptityugi
    juste un

    write(1, c, 1)
    et c est un caractere envoyer en parametre


    juste une boucle:
    while (str[i])
    {
    write(1, str[i], 1)
    }

    ou
    write(1, str, strlen)
    Je pense que tu devrait commencer par ouvrir ton livre de C, la fonction write ne devrait pas y apparaitre puisque spécifique à la norme POSIX, ici on ne se préocupe que de la norme ANSI : C Standard Librairie. Et strlen est une fonction, il lui manque son paramètre.

    Citation Envoyé par leptityugi
    et je suis d'accord qu'il faut faire fort pour peter une pile mais sa arrive.
    j'ai dit dans les gros prog,... il peu y avoir de la recursion.
    Admetons

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 52
    Points : 44
    Points
    44
    Par défaut
    strlen etait un exemple je n'ai pas ete precis parce que dans ce cas la sa sert a rien arretons cette discussion ici parce que sa va finir en dialogue de sourd :-D

    et juste pour te repondre j'utilise write en c depuis tres longtemp et sa fonctionne du tonnerre de dieu.
    comme on dit on ne melange pas les gout et les couleurs :-D

    et au fait juste pour info printf temporise ce qu'on lui envoye jusqu'a avoir un \n et la il affiche tout.
    quand on est pas au courant sa peut poser des ptit problemes voila aussi pourquoi j'aime pas printf il m'as martiriser quand j'ai commencer


    sur ce ++

    ps: mes question avait une reponse juste en dessous

  11. #11
    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 leptityugi
    j'aurais dit
    Non, pas standard et pas justifié vu qu'il existe des aleternatives standards :
    ou tout simplement
    printf est une fonction que je trouve capritieuse au niveau memoire et l'utiliser seulement pour un retour chariot...
    Capricieuse ? Pas vraiment. Peu efficace pour un caractère, OK.
    Pas de Wi-Fi à la maison : CPL

  12. #12
    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 leptityugi
    et juste pour te repondre j'utilise write en c depuis tres longtemp et sa fonctionne du tonnerre de dieu.
    Il n'y a aucune bonne raison pour utiliser la fonction système write() sur stdout. En plus, c'est pas efficace, car non bufferisé.
    Pas de Wi-Fi à la maison : CPL

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 52
    Points : 44
    Points
    44
    Par défaut
    c'est a dire?

    je vois pas en quoi on a besoin de bufferiser pour ecrire sur la sortie standar

  14. #14
    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 leptityugi
    c'est a dire?

    je vois pas en quoi on a besoin de bufferiser pour ecrire sur la sortie standar
    Pour ne pas ralentir l'application...
    Pas de Wi-Fi à la maison : CPL

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 52
    Points : 44
    Points
    44
    Par défaut
    .... j'avoue que je ne comprend pas.
    developpe si sa te derange pas, si tu pouvais m'expliquer pourquoi ne pas bufferiser ralenti l'application
    sa serait cool

    merci

  16. #16
    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 leptityugi
    .... j'avoue que je ne comprend pas.
    developpe si sa te derange pas, si tu pouvais m'expliquer pourquoi ne pas bufferiser ralenti l'application
    sa serait cool
    Parce que l'accès en écriture devient synchrone. Il est fréquent d'avoir des traitements temps réels plus prioritaires que l'affichage. Ne pas oublier que stdout peut être connécté à un périphérique lent genre port série...

    Pareil pour les accès disques, on écrit pas en temps réel, mais quand un secteur est plein, ou sur demande 'fflush(), fclose())

    L'application fait donc une demande d'écriture, et celle-ci se fait quand il y a du temps libre.
    Pas de Wi-Fi à la maison : CPL

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 52
    Points : 44
    Points
    44
    Par défaut
    ok merci pour tout

Discussions similaires

  1. Creer un tableau à double entrée
    Par banker dans le forum Access
    Réponses: 4
    Dernier message: 26/01/2006, 10h12
  2. [Tableaux] tableau double entrée
    Par molesqualeux dans le forum Langage
    Réponses: 3
    Dernier message: 09/12/2005, 15h19
  3. tableau double entrée et requete sql
    Par oceane751 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 29/11/2005, 14h25
  4. [MySQL] Tableau double entrée et requete sql
    Par oceane751 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 28/11/2005, 09h07
  5. [XSLT]tableau double entrée avec cellule manquante
    Par nferay dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 08/03/2005, 15h07

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