Cum să sortați matrice goale în partea de sus pentru a le putea șterge

int id_swap()
{
    char tempstring[15];

    strcpy(tempstring, id[index+1]);
    strcpy(id[index+1], id[index]);
    strcpy(id[index], tempstring);
}

int delete_student()
{
    int found=0;
    char id_to_find[10];

    printf("Please enter the student ID to delete\n\n");
    scanf("%s", & id_to_find);
    fflush(stdin);
    system("cls");

    for(index=0;index

Bine, deci face parte din codul meu. Un exemplu rapid de ceea ce se întâmplă

Sortează studenții care sunt deja în program, așa că vine așa, de ex

Student#1 Chris ID: 1831
Student#2 etc
student#3 etc
student#4 Brian ID: 4432
student#5 etc
student#6 etc

Dar când încerc să îl șterg spunem pe Brian, de exemplu, îl șterge, dar apoi arată așa

student#1 ID:
Student#2 Chris ID:1831
Student#3 etc

Există vreo modalitate de a mișca acea matrice goală în ultima poziție, astfel încât să pot scădea apoi valoarea mea de "Height_of_array" astfel încât numărul de studenți care se pot păstra să scadă cu 1 pentru a reflecta ștergerea

0
Unde este definit height_of_array? De asemenea, codul dvs. arată ca tăiat brusc ...
adăugat autor m0skit0, sursa
Vă rugăm să faceți o favoare și să vă formați codul într-o manieră lizibilă.
adăugat autor reima, sursa
Adăugați eticheta pentru temă dacă este cazul.
adăugat autor thb, sursa

1 răspunsuri

Există câteva probleme cu codul dvs.: săriți la mine:

 fflush(stdin);

Niciodată nu faceți asta. Rulați numai fluxurile de ieșire.

height_of_array = height_of_array--;

Este un comportament nedefinit, ai vrut să spui:

height_of_array--;
0
adăugat
Mulțumesc, am încercat, dar a eliminat apoi 3 din celelalte rețele și nu doar pe cea pe care am încercat să o eliminăm:
adăugat autor AppleAssassin, sursa
Am lucrat :)
adăugat autor AppleAssassin, sursa
Probabil pentru că nu eliminați index atunci când eliminați elementele.
adăugat autor Dave, sursa
Nu uitați să acceptați răspunsuri utile;)
adăugat autor Dave, sursa