Insérer une valeur dans un tableau trié

Soyez le premier à donner votre avis sur cette source.

Snippet vu 9 686 fois - Téléchargée 29 fois

Contenu du snippet

n oubliez pas la notation

Source / Exemple :


#include <stdio.h>
main()
{
 /* Déclarations */
 int A[50]; /* tableau donné    */
 int VAL;   /* valeur à insérer */
 int N;     /* dimension        */
 int I;     /* indice courant   */

 /* Saisie des données */
 printf("Dimension N du tableau initial (max.50) : ");
 scanf("%d", &N );
 for (I=0; I<N; I++)
    {
     printf("Elément %d : ", I);
     scanf("%d", &A[I]);
    }
 printf("Elément à insérer : ");
 scanf("%d", &VAL );
 /* Affichage du tableau */
 printf("Tableau donné : \\n");
 for (I=0; I<N; I++)
    printf("%d ", A[I]);
 printf("\\n");
 /* Déplacer les éléments plus grands que */
 /* VAL d'une position vers l'arrière.    */
 for (I=N ; (I>0)&&(A[I-1]>VAL) ; I--)
       A[I]=A[I-1];
 /* VAL est copié à la position du dernier */
 /* élément déplacé. */
 A[I]=VAL;
 /* Nouvelle dimension du tableau ! */
 N++;
  /* Edition des résultats */
 printf("Tableau résultat :\\n");
 for (I=0; I<N; I++)
    printf("%d ", A[I]);
 printf("\\n");
 return 0;
}

A voir également

Ajouter un commentaire

Commentaire

cs_Kirua
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008

avant de noter, je voudrais savoir si tu fais du C ou du C++ ? ça ressemble très très fort à du C (en fait je pense que c'en est)

quoiqu'il en soit, tu te limites dès les premières lignes de ton code, en initialisant la taille du tableau à 50 éléments. c'est un gros handicape je pense. tu devrais utiliser malloc et free pour allouer la mémoire dynamiquement.

aussi, moi je te conseil de réécrire le tout en C++, avec new et delete, et tu en fais une classe réutilisable proprement, facilement, sans variable globale ou autres. puis avec cin/cout plutot que scanf/printf.

mais peut etre que c obligatoirement en C. change qd même le tableau limité à 50. parce que tu vas pas mettre A[1000] pour être sur et ainsi réserver plein de mémoire inutile. dans un jeu par exemple faut etre vachement économe.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.