• Leute habe das Problem gelöst habe nun ein Satck Problem mit meinem Programm:

    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>

    #define Null 0

    struct list_element{
    char element[40]; /*Element für diesen Knoten*/
    struct list_element *next; /*Zieger auf den nächsten Knoten*/
    };

    typedef struct list_element knoten; /*Verienbarung des Strukturtyps */

    int menu(void){

    int wahl;

    do{
    printf("\nHaupmenue:\n");
    printf("\n1 - Liste erstellen ");
    printf("\n2 - Element hinzufuegen");
    printf("\n3 - Element loeschen");
    printf("\n4 - Programm beenden");
    printf("\nBitte geben Sie ihre Auswahl ein (1, 2, 3 oder 4) ein:");
    scanf("%d", &wahl);
    if(wahl < 1 || wahl > 4)
    printf("\n Fehler - Bitte geben Sie es erneut ein\n");
    }

    while((wahl < 1)|| (wahl > 4));
    printf("\n");
    return(wahl);
    }

    void erstellen(knoten *datensatz){

    printf("Element(fuer Beendigung ENDE eingeben):");
    scanf("%\n", datensatz->element);

    if(strcmp(datensatz->element,"ENDE")==0)
    datensatz->next = NULL;
    else{
    datensatz->next=(knoten*)malloc(sizeof(knoten));
    erstellen(datensatz->next);
    }

    return ;

    }

    void anzeigen(knoten *datensatz){

    if (datensatz->next != NULL){
    printf("%s\n", datensatz->element);
    anzeigen(datensatz->next);
    }
    return;

    }

    knoten *einfuegen(knoten *erster){

    knoten *locate(knoten*, char[]);
    knoten *neu_satz;
    knoten *tag;
    char neu_element[40];
    char ziel[40];

    printf("Neues Element: ");
    scanf("%\n", neu_element);
    printf("Vor folgendem Element einfügen(ENDE eingeben, wenn vor letztes): ");
    scanf("%\n", ziel);

    if(strcmpi(erster->element, ziel) == 0){

    neu_satz = (knoten*)malloc(sizeof(knoten));

    strcpy(neu_satz->element, neu_element);

    neu_satz->next = erster;

    erster = neu_satz;
    }

    else{

    tag = locate(erster, ziel);

    if(tag == NULL)
    printf("\n Keine Entsprechung gefunden - Bitte erneut versuchen\n");

    else{

    neu_satz = (knoten*)malloc(sizeof(knoten));

    strcpy(neu_satz->element, neu_element);

    neu_satz->next = tag->next;

    tag->next = neu_satz;
    }
    }

    return (erster);
    }

    knoten *locate(knoten *datensatz, char ziel[]){

    if(strcmpi(datensatz->next->element, ziel) == 0)

    return(datensatz);

    else{
    if(datensatz->next->next == NULL)
    return(NULL);
    else
    locate(datensatz->next, ziel);
    }
    }

    knoten *loeschen(knoten *erster){

    knoten *locate(knoten*, char[]);
    knoten *tag;

    knoten *temp;
    char ziel[40];

    printf("Zu loeschendes Element bitte eintippen: ");
    scanf("%[^\n]", ziel);

    if(strcmpi(erster->element, ziel) == 0){

    temp = erster->next;

    free(erster);

    erster = temp;
    }

    else
    tag = locate(erster, ziel);

    if(tag == NULL)
    printf("\nKeine Entsprechung gefunden - Bitte erneut versuche\n");

    else{
    temp = tag->next->next;

    free(tag->next);

    tag->next = temp;
    }

    return (erster);
    }

    main(){

    knoten *start; /*Zieger auf den Listenanfang*/
    int wahl; /*Vereinbarung einer lokalen Veriablen*/

    int menu(void); /*Funktionsvereinbarung*/
    void erstellen(knoten *ptr); /*Funktionsvereinbarung*/
    knoten *einfuegen(knoten *ptr); /*Funktionsvereinbarung*/
    knoten *loesche(knoten *ptr); /*Funktionsvereinbarung*/
    void anzeigen(knoten *ptr); /*Funktionsvereinbarung*/

    do{
    wahl = menu();

    switch(wahl){

    case 1: /*Liste erstellen*/

    start = (knoten *)malloc(sizeof(knoten)); /*Für den ersten Knoten Speicherplatz zuweisen*/

    erstellen(start);
    printf("\n");
    anzeigen(start);
    continue;

    case 2: /* Element hinzufügen*/
    start = einfuegen(start);
    printf("\n");
    anzeigen(start);
    continue;

    case 3: /*Ein Element enntfernen*/
    start = loeschen(start);
    printf("\n");
    anzeigen(start);
    continue;

    default: /*Programm beenden*/
    printf("\n\tEnde des Programms\n");

    }
    }

    while( wahl != 4);
    }

    bitte um Hilfe!!!!

  • nur mal so ne frage nebstbei .. kannst du deinen code, nachdem du ihn gepostet hast, auch noch lesen? wenn nicht, dann gibz ne abhilfe dafür und zwar .. verwend den code tag, damit einrückungen usw. erhalten bleiben.

    das war erstens :)

    2tens ... niemand hat lust und laune, fehler von anderen zu suchen - was nicht heißt, daß wir nicht gern helfen. also eine fehlerbeschreibung a la HILFE ist wohl nicht ausreichend. erklär, wo dein problem ist .. sprich, welche testfälle funktionieren nicht, wo kommt es zur fehlerhaften abarbeitung oder wie auch immer.

    stell dir vor, jemand kommt zu dir und sagt nur: "ich hab ein problem" .. kannst ihm nur aufgrund dieses satzes helfen?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!