Hallo,
habe noch eine kurze Frage.
Kann mal jemand schnell den Code überfliegen und mir sagen, ob es eine einfach verkettete Liste (mit drei Daten pro Eintrag) ist?
Code: Alles auswählen
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct elem {
 char name[20];
 int anzahl;
 int kategorie;
 struct elem *next;
};
void loescheTastaturpuffer()
{
  int c;
  while( ((c = getchar()) != EOF) && (c != '\n') )
     ;
}
void print(struct elem *cursor, int a, int k){
    printf("Aktueller Eintrag:\n\n------------------------------------------------------------------\n");
    printf("Produkt:\t %s", cursor->name);
    printf("Menge:\t\t %d\n", a);
    printf("Kategorie:\t %d\n", k);
    printf("------------------------------------------------------------------\n");
    }
void search(struct elem *cursor, char name[20], int a, int k) {
    char gprodukt[20];
    printf("Welches Element soll ausgegeben werden?");
    fgets(gprodukt, 20, stdin);
    while (gprodukt[20] == name[20]) {
        printf("Test");
        }
}
int main(void) {
    int anzahl;
    int kategorie;
    struct elem
    *anfang = NULL, *cursor;
    char name[20];
    while (1) {
        printf("\nProdukt:");
        fgets(name, 20, stdin);
        if (strlen (name) == 1)
                    break;
        printf("\nAnzahl:");
        scanf("%d", &anzahl);
        printf("\nKategorie:");
        scanf("%d", &kategorie);
        loescheTastaturpuffer();
        cursor =malloc(sizeof(struct elem));
        if (cursor == NULL) {
            printf("Speicherplatzmangel\n");
            exit(1);
            }
        strcpy(cursor -> name, name);
        cursor -> next = anfang;
        cursor -> anzahl = anzahl;
        cursor -> kategorie = kategorie;
        anfang = cursor;
        anzahl = cursor;
        kategorie = cursor;
        };
    print(cursor, anzahl, kategorie); //Das gerade gewählte Element ausgeben
    search(cursor, name, anzahl, kategorie);
    return 0;
}
Das Unterprogramm "search" könnt ihr vernachlässigen.