La suppression d'un élément de tableau en C

J'ai écrit le programme suivant pour supprimer un élément de tableau entrées par l'utilisateur.

#include <stdio.h>
#include <conio.h>

void main() {
    int j, i, a[100], n, key, l;
    clrscr();
    printf("Enter the number of elements:");
    scanf("%d", &n);
    printf("\nEnter the elements:\n");
    for (i = 0; i < n; i++)
        scanf("%d", &a[i]);
    printf("\nEnter the element to delete:");
    scanf("%d", &key);
    l = n;  //Length of the array
    for (i = 0; i < l; i++) {
        if (a[i] == key) {
           for (j = i; j < l; j++)
               a[j] = a[j + 1];
           l--;    //Decreasing the length of the array
        }
    }

    printf("\nThe new array is \n");
    for (i = 0; i < l; i++)
        printf("%d ", a[i]);
     getch();
}

Il fonctionne très bien pour la plupart des entrées, mais lorsque l'entrée est quelque chose comme: 1 2 2 3 5 (ici 2 répète consécutivement) et l'élément à supprimer est 2, la sortie est 1 2 3 5.

Comment puis-je modifier le programme de manière à ce que toutes les instances de l'élément est supprimé?

est-ce les devoirs ou pour un codage de test?

OriginalL'auteur Green Noob | 2011-12-25