J veu un programme en lagage c

Fermé
aminious - 2 déc. 2007 à 23:59
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 3 déc. 2007 à 07:21
bonjour
svp
j veux ecrire un programme en langage c qui lit un tableau de n entier puis verifie et suprime un entier x du tableau (x etant lu au clavier)
exemple:
3 2 6 9 2 7
x=2
3 6 9 7

3 réponses

Salut,

Tu dois parcourir ton tableau à l'aide d'une boulce à compteur.

ex:

const int ELIMINATION = 2;
const int TAILLE = 6;
const int BASE =0;
int Tableau = [TAILLE] = { 3, 2, 6, 9, 2, 7 };
int Indice;

Indice = BASE;
while ( Indice < TAILLE )
{
if( Tab[Indice] == ELIMINATION )
{
// Supprime ton nombre de la façon que tu veux
}
Indice++;
}

J'espère que cela t'as aider, sinon ben désolé.
0
vignemail1 Messages postés 1246 Date d'inscription vendredi 8 octobre 2004 Statut Contributeur Dernière intervention 13 septembre 2019 259
3 déc. 2007 à 07:14
Pour de grand tableau je conseille des listes doublement chainés. Tableau de taille dynamique, suppression rapide car il suffit de changer 2 pointeurs max par occurrence trouvée.
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
3 déc. 2007 à 07:21
Salut,

voici un exemple à adapter
lami20j@debian:~/trash$ cat ccm2.c
#include <stdio.h>

#define TAILLE 10

int main ()
{
  int tab[TAILLE];
  int i, j, nb;

  printf ("Entrez les nombres (séparés par espace) : ");
  for (i = 0; i < TAILLE; ++i){
      scanf ("%d", &nb);
      tab[i] = nb;
  }

  /*affiche le tableau */
  for (i = 0; i < TAILLE; ++i)
    printf ("%d ", tab[i]);
  printf ("\n");

  /* élément à supprimer */
  printf ("Entrez un nombre : ");
  scanf ("%d", &nb);
  printf ("nombre à supprimer : %d\n", nb);

  /* suppression d'un élément */
  for (i = j = 0; i < TAILLE; ++i)
    if (tab[i] != nb)
      tab[j++] = tab[i];

  /*affiche le tableau après la suppression */
  for (i = 0; i < j; ++i)
    printf ("%d ", tab[i]);
  printf ("\n");
  return 0;
}
lami20j@debian:~/trash$ gcc ccm2.c
L'exécution
lami20j@debian:~/trash$ ./a.out
Entrez les nombres (séparer par espace) : 0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
Entrez un nombre : 5
nombre à supprimer : 5
0 1 2 3 4 6 7 8 9
lami20j@debian:~/trash$
0