Wenn keine Eingabe



  • Ich hätte ja das hier vorgeschlagen, die Frage ist, ob das hilft, nach der "wir sind seit zwei Monaten bei Schleifen" Aussage. 🤡

    int is_name(const char* name)
    {
      return 0;
    }
    
    char* get_name(char* buf, size_t size)
    {
      do printf("Enter your name: ");
      while (!is_name(fgets(buf, size, stdin)));
      return buf;
    }
    
    int main(void)
    {
      char buf[100];
      printf("Hello, %s!", get_name(buf, sizeof(buf)));
      return 0;
    }
    


  • Also ich hab das mit der leeren Eingabe mal weggelassen.

    int anzFE,anzAG,anzZE,anzFEN,maxZ,minZ,zeit;
        anzFE=0,anzAG=0;anzFEN=0,minZ=0,maxZ=0;
        char name[20];
        char nameMin[20];
        char nameMax[20];
        char string[20];
        char string1[20];
    
        zeit==0;
        do
        {
        anzZE=anzZE+1;       
        printf("Geben Sie Ihren Namen ein:..."); 
        scanf("%s", name);
        printf("\nGeben Sie Ihre Zeit ein:...");
        scanf("%d",&zeit);
    
        if(zeit==0)
        {
                  printf("\nAusgeschieden");
                  anzAG=anzAG+1;
        }
        else
        {
            if(zeit<minZ)
            {
                         minZ=zeit;
                         nameMin==name;
            }
            else
            {
                if(zeit>maxZ)
                {
                            maxZ=zeit;
                            nameMax==name;
                }
            }
        }
        }
        while(zeit>=0);
    
        printf("\n%d\n%s\n%d\n%s\n%d",anzAG,nameMin,minZ,nameMax,maxZ);
    

    Steh aber schon vor dem nächsten Problem. Alles läuft Problemlos nur am Ende gibt das Programm irgendwelche Zeichen aus.



  • Womit kompiliert das?


  • Mod

    Swordfish schrieb:

    Womit kompiliert das?

    Das sollte sich mit jedem standardkonformen C99-Compiler übersetzen lassen. Das ändert natürlich nichts da dran, dass es semantische Fehler ohne Ende enthält.



  • SeppJ schrieb:

    Swordfish schrieb:

    Womit kompiliert das?

    Das sollte sich mit jedem standardkonformen C99-Compiler übersetzen lassen. Das ändert natürlich nichts da dran, dass es semantische Fehler ohne Ende enthält.

    Nein: ⚠

    int anzFE,anzAG,anzZE,anzFEN,maxZ,minZ,zeit;
        anzFE=0,anzAG=0;anzFEN=0,minZ=0,maxZ=0;
    

    (Das Semikolon am Ende der ersten Zeile.)



  • pyhax schrieb:

    (Das Semikolon am Ende der ersten Zeile.)

    Nein: ⚠

    SeppJ hat recht.

    @SeppJ: aber

    anzFE=0,anzAG=0;anzFEN=0,minZ=0,maxZ=0;
    

    tut nicht was es scheint, oder?

    // edit: doch, tut es. 😉


  • Mod

    In dem Programm ist sehr vieles, was nicht tut, was es scheint. Oder eigentlich schon tut, was es scheint, weil die Fehler recht offensichtlich sind. Aber es tut vieles nicht das, was der Autor will.

    Aber syntaktisch ist es an sich korrekt.



  • SeppJ schrieb:

    In dem Programm ist sehr vieles, was nicht tut, was es scheint.

    das war mir schon klar... Der msvc hat sich nur an og. Zeile verschluckt...


  • Mod

    Swordfish schrieb:

    SeppJ schrieb:

    In dem Programm ist sehr vieles, was nicht tut, was es scheint.

    das war mir schon klar... Der msvc hat sich nur an og. Zeile verschluckt...

    Kann eben kein C99. Ist ja schließlich auch erst ein halbes Jahr offiziell. Nein, Moment, das war C11...



  • SeppJ schrieb:

    Kann eben kein C99. Ist ja schließlich auch erst ein halbes Jahr offiziell. Nein, Moment, das war C11...

    lol



  • Lol ein halbes Jahr offiziell. Aber wenn man die Zeit abzieht in der wir irgendwas sinnloses gemacht haben kommt man auf ca. 1 Monat.

    Und das Highlight ist, dass der Professor die Programmiersprache C++ nennt.

    Aber mal zurück zum Thema. Hat jemand eine Ahnung wo der Fehler liegen könnte?



  • NewC++ schrieb:

    nameMin==name;
    ...
                            nameMax==name;
    

    Sieht schon beides schizophren und nach Professorengeschwätz aus.



  • Wutz schrieb:

    NewC++ schrieb:

    nameMin==name;
    ...
                            nameMax==name;
    

    Sieht schon beides schizophren und nach Professorengeschwätz aus.

    Schien mir logisch, funktioniert aber scheinbar nicht. Liegt wahrscheinlich daran, dass wir noch immer bei den Schleifen sind.



  • Jo. Du hast jetzt zwei Möglichkeiten: Entweder, Du schreibst weiter von der Tafel ab, oder Du zeigst selbstverantwortung und besorgst Dir ein gutes(tm) Buch 😉

    Was Du willst ist strcmp( ) .



  • Swordfish schrieb:

    Jo. Du hast jetzt zwei Möglichkeiten: Entweder, Du schreibst weiter von der Tafel ab, oder Du zeigst selbstverantwortung und besorgst Dir ein gutes(tm) Buch 😉

    Was Du willst ist strcmp( ) .

    Ein Buch hab ich ja schon. Aber das Problem ist, wenn ich Befehle verwende, die uns der Lehrer nicht beigebracht hat, dreht der komplett durch.
    Liegt wohl daran, dass die meisten aus der Klasse jetzt schon mehr können als er.



  • Dann geh zum Klassenvorstand oder zum Direktor (oder falls ihr nen Abteilungsvorstand habt, zuerst zu diesem 😉 )... erzähle was los ist, erkläre dass so das Lernen nichts bringt, denn von der Tafel abschreiben ist gleichbedeutend wie vom Buch abschreiben was du genau so gut zu Hause auch machen kannst.

    Ihr dürft euch von den Professoren nichts gefallen lassen, gerade Programmieren ist ein Bereich wo man seiner Kreativität, seinem Einfallsreichtum freien Lauf lassen kann. Etwas wo man nicht stur nach einem Schema arbeiten "muss", denn wäre dies so, bräuchten wir keine Softwareentwickler mehr, dann würde es ein Bot auch tun (oh ja, ich hab mich an einem Bot versucht der "halbwegs" individuell ein Programm erstellt, was aber nicht so leicht ist, ein Projekt dass ich gerne in der Ecke verstauben lasse ^^)

    Also Kopf hoch, bauch rein brust raus und vorwärts zum Professor und auf die Barrikaden steigen!


Anmelden zum Antworten