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 :

inserer une valeur


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de dyala
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    81
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 81
    Par défaut inserer une valeur
    bonsoir
    j'ai un tableau t trie de n entier je voudrais inserer une valeur donnee dans le tableau en maintenant l'order croissant alors le probleme que c je fais la methode de decalage je vais perder la derniere valeur alors comment je peux regler ce probleme
    merci

  2. #2
    Membre éclairé Avatar de Bayard
    Inscrit en
    Juin 2002
    Messages
    863
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 863
    Par défaut
    Bon, ben comme d'habitude, il manque le code...

    Pensez à l'indenetation et à la balise code (l'icone # permet de le faire)

  3. #3
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Hio,

    La solution est claire : il faut agrandir le tableau.

    Simplissime, même.

  4. #4
    Membre confirmé Avatar de dyala
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    81
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 81
    Par défaut
    slt
    voila le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    include<stdio.h>
    void main()
    {int t[10],i,val;
    scanf("%d",&val);
    for(i=0,i<10,i++)
    if(t[i]>val)
    {for(i=0,i<10,i++)
    t[10-i]=t[10-i-1]};
    t[i]=val;
    le probleme que je vais perdre la valeur de t[10]

  5. #5
    Membre confirmé Avatar de dyala
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    81
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 81
    Par défaut
    mais comment je peux agrandir le tableau(je le declare de 10 case comment je peux ajoute une autre)

  6. #6
    Membre éclairé Avatar de Bayard
    Inscrit en
    Juin 2002
    Messages
    863
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 863
    Par défaut
    1)
    Pensez à l'indentation
    -> Le code n'est pas lisible

    2) Il existe deux types d'allocation de mémoire

    - statique: déclaration d'un tableau de taille fixe
    (il est possible de le dimmensionner à une taille max qu'il faudra tester).
    Vous êtes parti sur ce cas.

    - dynamique: appel de fonction malloc (allocation de mémoire) et free (restitution de mémoire). Ces fonctions appellent le système (Windows, Linux).
    Le code est plus lourd, mais il n'y a plus de taille max (il faut tout de même tester le retour des fonctions car la mémoire d'un système est limitée).

  7. #7
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Citation Envoyé par dyala Voir le message
    slt
    voila le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    include<stdio.h>
    void main()
    {int t[10],i,val;
    scanf("%d",&val);
    for(i=0,i<10,i++)
    if(t[i]>val)
    {for(i=0,i<10,i++)
    t[10-i]=t[10-i-1]};
    t[i]=val;
    le probleme que je vais perdre la valeur de t[10]
    D'abord tu ne perdras pas la valeur de t[10] car elle n'est de toute façon pas valide, en C les tableaux sont indicés de 0 à n-1, donc pour un tableau déclaré int t[10], les indices valides vont de 0 à 9.
    Secondo, il faut savoir ce que tu veux, tu déclares un tableau de 10 valeurs, tu l'initialises avec 10 valeurs, comment veux-tu en ajouter une ? il faut être cohérent. Tu dois raisonner en nombre de valeurs finales du tableau, donc si tu crées 10 valeurs et que tu veux en ajouter une, tu prévois 11 valeurs.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  8. #8
    Membre confirmé Avatar de dyala
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    81
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 81
    Par défaut
    t'as raison dans tou les cas la valeur doit etre inserer

  9. #9
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2007
    Messages : 15
    Par défaut regarder ca
    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>
    #define NMAX 100 /*c'est comme une borne max du tableau*/
    void main()
    {
       int t[NMAX],i,val,n;
       do{
       printf("entrer le nombre d\'elemnts :");
       scanf("%d",&n);
       }while(n<0 || n+1>NMAX)
       /* remplisser le tableau puis appliquer le trie de votre choix */
       for(int i=0;i<n)
       /* le nombre d'element c'est a dire n du tableux doit etre n+1<NMAX*/
       scanf("%d",&val);
       for(i=0,i<n,i++)
          if(t[i]>=val && t[i]<=val)
             {
               for(int j=n,j>i,i--)
                  t[j+1]=t[j];
               t[i]=val;
             }
    }

  10. #10
    Membre confirmé Avatar de dyala
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    81
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 81
    Par défaut
    ah oui ca marche aussi

Discussions similaires

  1. Inserer une valeur dans la base de registre
    Par vladimire dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 19/12/2007, 15h29
  2. Inserer une valeur dans une combo
    Par nytmare dans le forum Struts 1
    Réponses: 1
    Dernier message: 11/04/2007, 11h39
  3. Insérer une valeur dans un vecteur
    Par jalilv6 dans le forum Langage
    Réponses: 2
    Dernier message: 07/04/2006, 07h04
  4. Réponses: 3
    Dernier message: 10/08/2005, 11h11
  5. Inserer une valeur NULL dans un champ datetime
    Par Karibou dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 10/08/2005, 10h58

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