C-Programm: Array-Verwaltung mit Einfügen, Löschen, Ändern und Sortieren
Gesendet von Comunidad Wikiteka und eingeordnet in Informatik
Geschrieben am in
Deutsch mit einer Größe von 5,33 KB
C-Programm zur Array-Verwaltung
Das folgende C-Programm verwaltet ein Array mit maximal 5 Elementen und bietet ein Menü zum Einfügen, Entfernen, Ändern und Anzeigen von Werten.
Header und Konstanten
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define MAX 5
Funktionsprototypen
int eingeben();
void insert(int item, int vector[], int pos);
int remove(int elim, int vector[], int pos);
void modificar(int modif, int vector[], int pos);
void display(int array[], int position, int disponible);
void sort(int array[], int pos);
int menu();
Hauptprogramm
int main() {
int array[MAX], disponible, pos = 0;
int opt;
do {
disponible = MAX - pos;
opt = menu();
switch (opt) {
case 1:
printf("\nDISPONIBLE = %d\n", disponible);
if (disponible > 0) {
insert(eingeben(), array, pos);
pos++;
sort(array, pos);
} else {
printf("\nNO HAY ESPACIO\n");
}
disponible = MAX - pos;
printf("\nDISPONIBLE = %d\n", disponible);
display(array, pos, disponible);
break;
case 2:
printf("\nDISPONIBLE = %d\n", disponible);
if (disponible != MAX) {
pos = remove(eingeben(), array, pos);
sort(array, pos);
} else {
printf("\nDas Array ist leer, es kann nichts gelöscht werden");
}
disponible = MAX - pos;
printf("\nDISPONIBLE = %d\n", disponible);
display(array, pos, disponible);
break;
case 3:
if (disponible != MAX) {
modificar(eingeben(), array, pos);
sort(array, pos);
} else {
printf("Der Vektor ist leer\n");
}
disponible = MAX - pos;
printf("\nDISPONIBLE = %d\n", disponible);
display(array, pos, disponible);
break;
case 4:
system("cls");
printf("\nDISPONIBLE = %d\n", disponible);
display(array, pos, disponible);
break;
}
getch();
} while (opt != 0);
return 0;
}
Menüfunktion
int menu() {
int opt;
do {
printf("\t\tMENÜ");
printf("\n1 Einfügen");
printf("\n2 Entfernen");
printf("\n3 Ändern");
printf("\n4 Elemente anzeigen");
printf("\n0 Beenden");
printf("\nZiffer der Option:");
scanf("%d", &opt);
} while (opt < 0 || opt > 4);
return opt;
}
Anzeige der Elemente
void display(int array[], int position, int disponible) {
int i;
if (disponible != MAX) {
printf("\nAnzeige des Vektors:\n\n\t");
for (i = 0; i < position; i++) {
printf("|%2d", array[i]);
}
printf("|");
} else {
printf("\nVektor LEER");
}
}
Eingabe eines Elements
int eingeben() {
int item;
printf("Element eingeben:");
scanf("%d", &item);
return item;
}
Einfügen eines Elements
void insert(int item, int vector[], int pos) {
vector[pos] = item;
}
Entfernen eines Elements
int remove(int elim, int vector[], int pos) {
int i, posElim;
posElim = -1;
for (i = 0; i < pos; i++) {
if (vector[i] == elim) {
posElim = i;
}
}
if (posElim > -1) {
printf("\nElement gefunden an Position: %d", posElim);
for (i = posElim; i < pos - 1; i++) {
printf("\nEliminiere Position %d: %d", i, vector[i]);
vector[i] = vector[i + 1];
}
pos--;
} else {
printf("\nElement nicht gefunden");
}
return pos;
}
Ändern eines Elements
void modificar(int modif, int vector[], int pos) {
int i, posModif, replacement;
posModif = -1;
for (i = 0; i < pos; i++) {
if (vector[i] == modif) {
posModif = i;
}
}
if (posModif > -1) {
printf("Ersatzwert eingeben:");
scanf("%d", &replacement);
vector[posModif] = replacement;
printf("Wert erfolgreich ersetzt\n");
} else {
printf("Der Wert wurde nicht gefunden\n");
}
}
Sortierung
void sort(int array[MAX], int pos) {
int i, j, aux;
for (i = 0; i < pos - 1; i++) {
for (j = i + 1; j < pos; j++) {
if (array[i] > array[j]) {
aux = array[i];
array[i] = array[j];
array[j] = aux;
}
}
}
}