Zum Inhalt springen

darkyzero

Mitglieder
  • Gesamte Inhalte

    6
  • Benutzer seit

  • Letzter Besuch

  1. ich hab jetzt mal probieret das problem mehr deutlich zu machen [COLOR="#B22222"]/* Fkt. - Anzahl der Listenelemente */ int number_elems(void)[/COLOR] { int i=0; struct TStudListe *zeiger= anfang; while (zeiger != NULL) { i++; zeiger=zeiger->next; } printf("\n\n %d Listenelemente sind vorhanden \n\n", i); return i ; } [COLOR="#B22222"]/* Fkt. - sortierung */[/COLOR] void bubblesort(struct TStudListe*zeiger, int length) { int i, j; for (i = 0; i < length -1; ++i) { for (j = 0; j < length - i - 1; ++j) { if (array[j] > array[j + 1]) { int tmp = array[j]; array[j] = array[j + 1]; array[j + 1] = tmp; } } } } int main(void) { int wahl; long matrikeln; int anzahl; do { printf("\n1 : Eingabe\n"); printf("2 : Ausgabe\n"); printf("3 : matrikelnummer zu loeschen\n"); printf("4 : Sortieren\n"); printf("9 : Ende\n"); printf("Ihre Wahl : "); scanf("%d",&wahl); getchar(); switch(wahl) { case 1 : eingabe(); break; case 2 : ausgabe(); break; case 3 : printf("matrikelnummer zum Loeschen: "); scanf("%ld",&matrikeln); loesche(matrikeln); break; case 4: anzahl=number_elems(); void bubblesort(struct TStudListe*zeiger,int anzahl); i[COLOR="#B22222"]ch wirde gern meine struct sortieren nach der matermatrikelnummer[/COLOR] break; case 9 : break; default: printf("Falsche Eingabe!!!\n"); } } while(wahl != 9); return EXIT_SUCCESS; }
  2. eine Frage hab ich noch ich soll mit Bubble sort noch die Matrikelnummer sorten . nur weis ich nicht genau wie ich das einbinden soll hab den grund quell-code schon gefunden nur bringt der mich nicht weiter. void swap(int* a, int* ; void bubble(int a[], int len) { int i, bound; for (bound = len; bound > 0; bound--) { for (i=1; i < bound; i++) { if (a[i-1] > a[i]) swap(&a[i-1], &a[i]); } } } void swap(int* a, int* { int tmp = *a; *a = *b; *b = tmp; }[/code] ware nett wenn mir wer weiter helft
  3. if(anfang->matrikelnummer == wen) so gehst vielen dank für deinen tipp und helfe. entschuldige noch mal für meine ersten post
  4. wenn die matrikelnummer = 0 ist dann löscher es sollte nicht da stehen if(anfang->matrikelnummer,wen == matrikeln)
  5. es tut mir leidt wollte nicht unhöflich sein . ich habe Jetzt geschaft das er wenigst schon die daten speichert nun ist aber leider mein problem das er nicht den Befehl löschen anwende auf bestimmte matrikelnummer. ich hoffe ich hab es dies mal besser ein geschrankt. #include <stdio.h> #include <string.h> #include <stdlib.h> struct TStudListe { long matrikelnummer; int credit_points; struct TStudListe *next; }; struct TStudListe *next = NULL; struct TStudListe *anfang = NULL; void anhaengen(long m, int c) { struct TStudListe *zeiger; if(anfang == NULL) { if((anfang =malloc(sizeof(struct TStudListe))) == NULL) { fprintf(stderr, "Kein Speicherplatz vorhanden " "für anfang\n"); return; } anfang->matrikelnummer = m; anfang->credit_points = c; anfang->next=NULL; } else { zeiger=anfang; while(zeiger->next != NULL) zeiger=zeiger->next; if((zeiger->next = malloc(sizeof(struct TStudListe))) == NULL) { fprintf(stderr,"Kein Speicherplatz für das " "letzte Element\n"); return; } zeiger=zeiger->next; zeiger->matrikelnummer=m; zeiger->credit_points=c; zeiger->next=NULL; } } [COLOR="#B22222"]/* Funktion zum Löschen einer Datei */[/COLOR] void loesche(long wen ) { struct TStudListe *zeiger, *zeiger1; [COLOR="#B22222"] Hier ist das Problem das er es irgend wie nicht ausführt[/COLOR] if(anfang != NULL) { if(anfang->matrikelnummer,wen == 0) { zeiger=anfang->next; free(anfang); anfang=zeiger; } else { zeiger=anfang; while(zeiger->next != NULL) { zeiger1=zeiger->next; if(zeiger1->matrikelnummer,wen == 0) { zeiger->next=zeiger1->next; free(zeiger1); break; } zeiger=zeiger1; } } } else printf("Es sind keine Daten zum Loeschen vorhanden!!!\n"); } [COLOR="#B22222"]/* Funktion zum Ausgeben der Dateien */[/COLOR] void ausgabe(void) { struct TStudListe *zeiger = anfang; while(zeiger != NULL) { printf(" matrikelnummer %ld,|credit_points:%d|\n", zeiger->matrikelnummer,zeiger->credit_points); printf("|---------------------------------------------------------|\n"); zeiger=zeiger->next; } } [COLOR="#B22222"]/* Funktion zur Eingabe der Daten */[/COLOR] void eingabe(void) { int credit; long matrikelnummer; printf("matrikelnummer: "); scanf("%ld",&matrikelnummer); printf("credit_points:"); scanf("%d",&credit); getchar(); anhaengen(matrikelnummer, credit); } int main(void) { int wahl; long matrikeln; do { printf("\n1 : Eingabe\n"); printf("2 : Ausgabe\n"); printf("3 : matrikelnummer loeschen\n"); printf("9 : Ende\n"); printf("Ihre Wahl : "); scanf("%d",&wahl); getchar(); switch(wahl) { case 1 : eingabe(); break; case 2 : ausgabe(); break; case 3 : printf("matrikelnummer zum Loeschen: "); [COLOR="#B22222"]Oder hier muss das Problem liegen[/COLOR] scanf("%ld",&matrikeln); loesche(matrikeln); break; case 9 : break; default: printf("Falsche Eingabe!!!\n"); } } while(wahl != 9); return EXIT_SUCCESS; }
  6. ich soll ein liste erstellen für ein modul nur komme ich nicht weiter wo liegt der fehler ware nett wenn mir jemand helfen konnte #include <stdio.h> #include <string.h> #include <stdlib.h> struct TStudListe { long matrikelnummer; int credit_points; struct TStudListe *next; }; struct TStudListe *next = NULL; struct TStudListe *anfang = NULL; void anhaengen(long m, int c) { struct TStudListe *zeiger; if(anfang == NULL) { if((anfang =malloc(sizeof(struct TStudListe))) == NULL) { printf( "Kein Speicherplatz vorhanden für anfang\n"); return; } strcpy(anfang->matrikelnummer, m); strcpy(anfang->credit_points, c); anfang->next=NULL; } else { zeiger=anfang; while(zeiger->next != NULL) zeiger=zeiger->next; if((zeiger->next = malloc(sizeof(struct TStudListe))) == NULL) { printf(stderr,"Kein Speicherplatz für das letzte Element\n"); return; } zeiger=zeiger->next; /* zeiger auf neuen Speicherplatz */ strcpy(matrikelnummer, m); strcpy(zeiger->credit_points, c); zeiger->next=NULL; } } /* Funktion zum Löschen einer Datei */ void loesche(long *wen) { struct TStudListe *zeiger, *zeiger1; if(anfang != NULL) { if(strcmp(anfang->matrikelnummer,wen) == 0) { zeiger=anfang->next; free(anfang); anfang=zeiger; } else { zeiger=anfang; while(zeiger->next != NULL) { zeiger1=zeiger->next; if(strcmp(zeiger1->name,wen) == 0) { zeiger->next=zeiger1->next; free(zeiger1); break; } zeiger=zeiger1; } } } else printf("Es sind keine Daten zum Loeschen vorhanden!!!\n"); } /* Funktion zum Ausgeben der Dateien */ void ausgabe(void) { struct TStudListe *zeiger = anfang; printf("||=======================================================||\n"); printf("|%10cmatrikelnummer%10c |credit_points|"); printf("||=======================================================||\n"); while(zeiger != NULL) { printf("|%12ld,| %02d|"\n", zeiger->matrikelnummer,zeiger->credit_points); printf("|---------------------------------------------------------|\n"); zeiger=zeiger->next; } } /* Funktion zur Eingabe der Daten */ void eingabe(void) { int credit_points; long matrikelnummer; printf("matrikelnummer: "); scanf("%ld",&matrikelnummer); printf("credit_points"); scanf("%ld",&credit_points); getchar(); anhaengen(n, c); } } int main(void) { int wahl; long matrikelnummer; do { printf("\n1 : Eingabe\n"); printf("2 : Ausgabe\n"); printf("3 : Namen loeschen\n"); printf("9 : Ende\n"); printf("Ihre Wahl : "); scanf("%d",&wahl); getchar(); switch(wahl) { case 1 : eingabe(); break; case 2 : ausgabe(); break; case 3 : printf("matrikelnummerzum Loeschen: "); scanf("%ld",&matrikelnummer); loesche(strtok(matrikelnummer, "\n")); break; case 9 : break; default: printf("Falsche Eingabe!!!\n"); } } while(wahl != 9); return EXIT_SUCCESS; }

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...