Sortierschleife bricht mit Fehler ab



  • http://www.c-plusplus.net/forum/viewtopic.php?t=39349

    dein code ist immernoch nicht ganz richtig.
    du hast ein [99] array. was ist der index des ersten und letzten elements?
    dein eines if-else... sag mal wird der code benotet?

    was erhoffst du dir mit deinem teuren studium?



  • man: getchar() liest ein einziges Zeichen ein - das mußt du also so oft aufrufen, bis du am Zeilenende angekommen bist, um allen "Müll" aus dem Tastaturpuffer zu werfen:

    while(getchar()!='\n');
    //oder mit ausführlicherer Fehlerkontrolle:
    int input;
    while((input=getchar())!=EOF && input!='\n');
    

    Übrigens solltest du die system()-Aufrufe auch weglassen. Für system("cls"); kenne ich zwar keinen systemunabhängigen Ersatz, aber vermutlich sieht dein Programm auch noch gut aus, wenn du es weglässt.

    PS: Und das Konstrukt "if(test==1);else..." habe ich auch noch nicht gesehen 😉 Wenn nur in einem der möglichen Fälle etwas passieren soll, pack diesen Teil in den if-Zweig: "if(test!=1) break;"



  • Haha ein Unigegner. Eigentlich studiere ich Biologie (Diplom). Info mach ich nur aus Spaß als Nebenfach. Und was ich mir davon erhoffe? Ich weiß, ich sollte jetzt schreiben, dass ich viel Geld verdienen will aber ich bin nicht so fehlgeleitet. Dann hätte ich BWL gemacht.
    Ich spiele an den Genen rum. Hauptsächlich von Pflanzen aber auch Mikroorganismen und fliege dafür durch die ganze Welt. Also ein Hauch Ökologie ist auch dabei. Das ist tausendmal schöner als ein Unternehmen zu haben.
    Teuer ist das Studium übrigens nicht. Zweimal im Jahr 50 Euro Beitrag.

    Und mit einem HIWI Job und ab August sogar Werkstudent kriegt man vom Max-Planck auch mal schnell 800 Euro pro Monat 😉 (PS: Vitamin 😎

    Ich steh auch nicht in der Botanik rum und schau mir Blumen an. Laborarbeit trifft es eher. Man soll es nicht glauben, aber einige denken doch immer noch, dass Biologie nur zum Pflanzen und Tiere Anschauen da ist.

    Wir schicken hier zB als einzige Uni Europas Planzen mit Genen aus extrem widerstandsfähigen Bakterien (isoliert aus dem Kühlwasser vom Atomkraftwerken) ins All und zwar ausserhalb des Magnetfeldes. Volle Strahlung, trotzdem kamen einige heil zurück. Also ich finde das ziemlich interessant und etwas Schöneres kann ich mir nicht vorstellen. Meine Freundin ist da derselben Meinung. (Biologin)

    Jetzt mal zu diesem flush. Undefiniertes Verhalten? Man weiß nicht was es macht aber undefinierbar ist im Rechner faktisch unmöglich. Begrenzte Sichtweise des Users ok, aber mehr nicht. Naja es klappt halt trotzdem. Erklärt mir mal warum.



  • CStoll schrieb:

    man: getchar() liest ein einziges Zeichen ein - das mußt du also so oft aufrufen, bis du am Zeilenende angekommen bist, um allen "Müll" aus dem Tastaturpuffer zu werfen:

    while(getchar()!='\n');
    //oder mit ausführlicherer Fehlerkontrolle:
    int input;
    while((input=getchar())!=EOF && input!='\n');
    

    Übrigens solltest du die system()-Aufrufe auch weglassen. Für system("cls"); kenne ich zwar keinen systemunabhängigen Ersatz, aber vermutlich sieht dein Programm auch noch gut aus, wenn du es weglässt.

    PS: Und das Konstrukt "if(test==1);else..." habe ich auch noch nicht gesehen 😉 Wenn nur in einem der möglichen Fälle etwas passieren soll, pack diesen Teil in den if-Zweig: "if(test!=1) break;"

    Ok das ist doch mal ein Wort. Danke.



  • printf("Druecken Sie eine beliebige Taste zum Fortfahren!"); getchar(); getchar();

    für system("pause")

    Ich brauch das drin, denn meine Konsole schliesst sich am Ende immer sofort ohne das ich was sehen kann.
    Aber jetzt klappt es schon super. Nur halt dieses dumme "neue Zahl? JA NEIN" nervt noch.



  • c.rackwitz schrieb:

    http://www.c-plusplus.net/forum/viewtopic.php?t=39349

    dein code ist immernoch nicht ganz richtig.
    du hast ein [99] array. was ist der index des ersten und letzten elements?
    dein eines if-else... sag mal wird der code benotet?

    von [0] bis [99]

    keine Noten. Nur um zu sehen, dass man auch mitmacht, weil VL ist keine Pflicht.



  • Valmar schrieb:

    printf("Druecken Sie eine beliebige Taste zum Fortfahren!"); getchar(); getchar();

    für system("pause")

    Ich brauch das drin, denn meine Konsole schliesst sich am Ende immer sofort ohne das ich was sehen kann.

    Dann schau mal in den obersten Thread der Konsolen-FAQ - dort stehen wesentlich bessere Alternativen drin.

    Valmar schrieb:

    c.rackwitz schrieb:

    du hast ein [99] array. was ist der index des ersten und letzten elements?
    dein eines if-else... sag mal wird der code benotet?

    von [0] bis [99]

    Setzen - Sechs. Die gültigen Indizes in einem "Typ array[n];" gehen von "array[0]" bis "array[n-1]" - array[n] liegt hinter dem Array-Ende.



  • Sieh mal an. Das hat die nie erwähnt... Naja man lernt nie aus. DANKE!!!



  • ok, abgesehen vom kurs, der C verlangt... warum quaelst du dich ueberhaupt mit C ab?

    fuer biologie (speziell auch genetik) gibts viel geeignetere sprachen. jede scriptsprache tuts und mit z.b. matlab kommst du auch recht gut ueber die runden.
    bei scriptsprachen brauchst du dich um vieles nicht kuemmern: speicherverwaltung (kommt im kurs noch), jeder variable nen typen zuweisen, arraygrenzen, zeiger,...

    die frage nach dem studium war so ausgelegt...
    wenn hier jemand "studium" sagt, gehe ich pauschal von hauptfach info aus. info nebenfach hoert man sonst nur von elektrotechnikern und anderen toastermoerdern.
    "was erhoffst du dir": dass du es wegen dem spass an der sache machst, oder nur um nen job zu kriegen.



  • Ich weiß, dass es geeignete Programme gibt. Die kenn ich auch. Aber das machen bei uns immer die Bio-Informatiker.
    Ich mach das nur aus Spaß. Um zu wissen woraus so ein Programm aufgebaut ist. Ich lern zB auch im 3 Jahr Japanisch. Ich bin einfach nicht ausgelastet.


Anmelden zum Antworten