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.