C Aufgabe



  • Hallo zusammen,

    da ich noch C-Anfänger bin benötige ich ein wenig brain storming von euch.
    Meine Aufgabe lautet folgendermaßen..
    Ich bekomme über eine Datei zwei Zeilen übergeben, in der 1. stehen sozusagen die Containergrößen und in der 2. Zeile: Zahlen und fit-verfahren..

    Beispiel:
    10 20 30
    ff 5 2 1 bf 10 2 1 (ff=first-fit, bf= best-fit)

    die Zahlen sollen in die oberen Container eingeordnet werden.
    Da endlich viele Daten übergeben werden, weiß ich, das ich malloc nutzen muss.
    Darüber hinaus strtok um die leerzeichen loszuwerden.
    Ich muss außerdem ja die buchstaben von rechts an raus filtern vill. mit strrchr?
    Ich hab gehört dynamische Datenstruktur z.B. verkettete Listen sollen helfen, wobei ich nicht weiß wie ich die darauf anwenden soll?

    Für jede Funktion und Anregung bin ich dankbar. 🙂


  • Mod

    Das kommt alles auf das genaue Format an, das Beispiel zeigt zwar eine Möglichkeit, aber wir müssen auch die genauen Regeln kennen.
    Beispielsweise:
    -Stehen in der 1. Zeile immer 3 Zahlen?
    -Gibt es da einen Zusammenhang zu den Zahlen zwischen den Fitverfahren?
    Und so weiter. Das sind bloß Beispielfragen, am besten nennst du mal konkret alle Regeln, die du vorgegeben hast.

    PS: strtok und strchr sind so ziemlich die letzten Dinge, an die ich hier gedacht hätte. Das sind ja Zeichenkettenoperationen. Willst du also zuerst die Eingaben in Form einer Zeichenkette lesen, diese bearbeiten, und dann auf die Zeichenkette diverse Lesefunktionen anwenden? Warum nicht gleich die passenden Lesefunktionen auf die Eingabe anwenden? scanf ist außerordentlich mächtig, damit kann man selbst komplizierte Formate ziemlich einfach verarbeiten, ohne unnötige Vorverarbeitung.



  • Danke schonmal.
    Also wie schon oben beschrieben sind es endlich viele Zahlen, also können auch 1000 Zahlen sein.
    Die Aufgabe hat 8 Seiten, daher würde ich es lieber nicht alles hier reinstellen.
    Aber vielleicht noch paar Anmerkungen.
    - Die Fit-Verfahren und die Zahlen sind random.
    - Es darf nur C verwendet werden sowie nur Standardbibiotheken C89/C90
    - Kein realloc nur malloc
    - linux x86 compilierbar und lauffähig
    - Ausgabedatei soll wie folgt aussehen:

    <Containerindex: Boxgröße1 Boxgröße2 ... Boxgröße'n' \n>
    Bsp: 0: 0
         1: 20 15 1
         2: 87 2
         usw.
    

    -Fitverfahren:
    First-fit: Erster Container mit Platz
    Best-fit: Welche hat nach dem füllen am wenigsten Restplatz
    Next-fit: Welche Container wurde als letztes verwendet, wenn keiner dann mit kleinsten Index.
    almost-worst-fit: Zweitmeisten Platz, wenn der zu klein, dann den größten verwenden.

    Und zu scanf, also ich hab bis jetzt fgets benutzt, da hier die Zeilen direkt in ein puffer gespeichert werden und ich beide Zeilen getrennt voneinander gespeichert haben wollte. Und mir das mit fgets einfacher vorkam wie mit scanf.



  • Du kannst nicht lesen.
    Zeige ein konkretes Beispiel der Eingabedatei und wie schon oben gefordert, nenne alle Anforderungen des Eingabeformates. Das Ausgabeformat interessiert hier nicht.
    Zeige deine bisherigen Code-Versuche als vollständig compilierbares Minimalbeispiel.
    Niemand hat hier Lust, dir das einzeln aus der Nase zu ziehen.


Anmelden zum Antworten