Zahlenreihe auswerten
-
war auch meine rster gedanke, aber das sieht das nicht so aus :
Eingabe:1 2 2 3 3 3 3 4 4 55 55 6 2 3 0
Ausgabe:1 2*2 4*3 2*4 2*55 6 2 3sondern:
Eingabe:1 2
Ausgabe:1
Eingabe:2 3
Ausgabe:22
Eingabe:3 3 3 4
Ausgabe:43
Eingabe:4 55
...
-
Bitte lies Deine Texte wenigstens vor dem Absenden nochmal GANZ kurz durch.
Ich zähle mehr Rechtschreibfehler als Satzzeichen bei Dir...Wie wäre es mit etwas Code, damit man Dir auch sagen kann, wo der Fehler steckt?
-
gut
Mit struct:
struct test{ int zahltyp, anzahl; struct test *zeigervar; }; int monoton(struct test *zeiger){ int t,z; t=zahl(&z); if(t!=0){ if (z==0){(*zeiger).zeigervar=NULL;} else{ if (z== (*zeiger).zahltyp){(*zeiger).anzahl++;} else {(*zeiger).zeigervar=malloc(sizeof(struct test)); unterzeiger=(*zeiger).zeigervar; (*unterzeiger).zahltyp=z; (*unterzeiger).anzahl=1; } monoton(unterzeiger); } } return 0; } int ausgabe(struct test* zeiger){ if ((*zeiger).zeigervar==NULL) {printf("\n"); return 0;} else{ zeiger=(*zeiger).zeigervar; if ((*zeiger).anzahl>1) { printf("%dx",(*zeiger).anzahl);} printf("%d ",(*zeiger).zahltyp); ausgabe(zeiger);} return 0; }
-
Seppelxxl schrieb:
war auch meine rster gedanke, aber das sieht das nicht so aus
Das ist ja offensichtlich nicht die Schuld des Algorithmus', sondern der Art und Weise, wie du die Eingabe gestaltest. Schick den ganzen String auf einmal rein und dann kommt das auch so raus wie gewünscht. Vielleicht hab ich dich auch falsch verstanden, dann solltest du nochmal genauer beschreiben, was das Problem ist.
-
int main(){
unterzeiger=startzeiger= malloc(sizeof(struct test));
monoton(unterzeiger);
ausgabe(startzeiger);return 0;
}
-
also eingegeben wird immer zahl für zahl mit enter
und das ergebnis soll am ende als zeile ausgegeben werden
-
Dann geht es nicht ohne O(n) Zwischenspeicheraufwand (für die Eingabe, die Ausgabe oder was auch immer, spielt keine Rolle).
-
Also habe mal mit einen der Übungsleiter des Kurses gesprochen, und er meinte das die Beispielaufgabe fehlerhaft ist und die Ausgabe nach jeder Änderung sofort angezeigt werden kann, also Problem gelöst
-
würg... Wechsel die Uni
Ich mein, wenn mans genau nimmt...
hätteste halt einen char-pointer erstellt, mit malloc 100 bytes geholt und dann da schön zwischengespeichert. Kein "Feld" und das Ergebnis hätte so aussehen können wie zuerst angenommen
-
Die zeitliche Verzögerung von Aus- und Eingabe sollte hier keine Rolle spielen.