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;
      }
    }
  }
}