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 :

Mise en forme d'un tableau de int pour un affichage ascii


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2008
    Messages
    384
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 384
    Par défaut Mise en forme d'un tableau de int pour un affichage ascii
    Bonjour,

    J'utilise une fonction de tri a bulle pour trier un tableau de unsigned long int de 5 lignes.

    Avant d'executer cette fonction de tri, j'initialise mon tableau en mettant dans chaque ligne le caractère '\0'

    Au départ, j'ai donc ceci :

    table[0] = 0;
    table[1] = 0;
    table[2] = 0;
    table[3] = 0;
    table[4] = 0;

    Ensuite alimente ensuite mon tableau et mettant ma premiere valeur à trier dans table[0], par exemple la valeur 12, puis je lance le tri.

    J'obtiens alors ceci après le tri :

    table[0] = 0;
    table[1] = 0;
    table[2] = 0;
    table[3] = 0;
    table[4] = 12;

    Si j'ajoute une 2ème valeur, par exemple 15 dans table[0] puis je relance le tri j'obtiens ceci :

    table[0] = 0;
    table[1] = 0;
    table[2] = 0;
    table[3] = 12;
    table[4] = 15;

    Mon tableau est bien trié, pas de soucis, mais je voudrais obtenir une mise en forme différente : comment faire supprimer les 0 inutiles afin que la valeur la plus petite différente de 0 soit toujours placée en rang 0 du tableau ?

    table[0] = 12;
    table[1] = 15;
    table[2] = 0;
    table[3] = 0;
    table[4] = 0;

    Comme je cherche a ensuite afficher ce tableau sur une page web, il me faut au préalable convertir chaque unsigned long int en ascii avec ultoa.
    Mon soucis c'est que une valeur int '\0' transformée en ascii ca donne '0'

    Le resultat affichable que j'espere serait celui ci :

    table[0] = 12;
    table[1] = 15;

    J'espère que mon explication est suffisemment compréhensible ....
    Je vous remercie de votre aide,

  2. #2
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    que la valeur la plus petite différente de 0 soit toujours placée en rang 0 du tableau ?
    Dans ton programme de tri, tu dois avoir quelque chose ressemblant à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(a>b)... // echange a et b
    Tu peux modifier en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(a>b || a==0)... // echange a et b
    Ce qui revient à dire que 0 est plus grand (ou égal) à toutes les autres valeurs et le tri les placera en queue de tableau

    Mon soucis c'est que une valeur int '\0' transformée en ascii ca donne '0'
    Tu n'as qu'à ignorer purement et simplement les valeurs 0

Discussions similaires

  1. Changer la mise en forme d'un tableau et de son contenu ?
    Par ghohm dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 06/07/2007, 12h19
  2. [MS-Project] Mise en forme d'un tableau
    Par babemagus dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 06/06/2007, 15h56
  3. [XSLT]Mise en forme d'un tableau par categorie
    Par dibox dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 06/12/2006, 16h42
  4. [ struts-layout ]Mise en forme d'un tableau
    Par sandrinec dans le forum Struts 1
    Réponses: 2
    Dernier message: 01/06/2006, 10h06

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