...



  • kanaryam090 schrieb:

    bist du zufällig mein Lehrer ^^

    nö,musste die Aufgabe selber machen,also Programm-Fehler finden,dokumentieren und korrigieren.
    Den Code poste ich nicht,da musste die schon selber ein "paar" Gedanken machen...



  • ...



  • Ewiger Kalender = Optimist 😉
    Sagen wir gregorianischer Kalender, der zwar 1500 und paar Zerquetschte eingeführt wurde, aber nicht europaweit, ist allein eine lange Geschichte 😃

    So nun noch zum Quelltext das war wahrscheinlich eine Hausaufgabe - deshalb von mir in kleinen Häppchen 🤡

    Die Komplettlösung hat noch ein paar kleine Fehlerchen 😃

    Ausgiebig testen kann nicht schaden 🕶



  • ...



  • Idee ja 😉
    Aber das ist dir ja vom ewigen ... schon geschrieben worden.

    Was zeigt dir denn dein Kalender an, wenn du 1.6.2010 eingibst 😕

    Ist aber kein Fehler auf den dich der Compiler hinweist.



  • Zur Abfrage, du hast nur die Hälfte gelesen 😉



  • Wie soll man diese Art der interaktiven Programmierung nennen? Scheint mir eine neue Methode zur Softwareentwicklung zu sein - ich haue völlig ahnungslos irgendwelchen Schrott ins Forum und bekomme etwas brauchbares geliefert!

    @Fragesteller: Ab jetzt solltest du versuchen, die Grundlagen der Programmierung selbst zu lernen. Bei Unklarheiten kannst du dann immer noch fragen. 🕶



  • kanaryam090 schrieb:

    printf( "Wollen Sie fortfahren und einen weiteren Wochentag berechnen ? " );
    getchar();
    scanf("%c", &Antwort);
    if ( Antwort='j' && Antwort='J' ) fortfahren = 1;
    else fortfahren = 0;

    diesen oberen Abschnitt habe ich in das umgewandelt:

    printf( "Wollen Sie fortfahren und einen weiteren Wochentag berechnen ? " );

    scanf("%c", &Antwort);
    if ( Antwort=='j' && Antwort=='J' ) fortfahren = 1;
    else fortfahren = 0;

    Ich sollte ja das machen: "UND Verknüpfung ist falsch, da nur "J" ODER "j" stimmen muss, - da wir den Wert abfragen und nicht zuweisen wollen, muss beide Male ein zusätzliches "=" hinzugefügt werden".

    So habe ich, denke mal gemacht. Nur Leider bricht er ab, wenn ich "j" eintippe. ?

    Idee??

    Wer lesen kann ist klar im Vorteil 😃
    Wenn ich doch schreibe,dass UND Verknüpfung falsch ist,wieso benutzt du sie trotzdem?

    Falls es dich noch interessiert, hier nun mein vollständig korrigierter Code:

    #include <stdio.h>
    
    int main (void)
    {
      int Jahr, Jh, J, Wt, T, M;
      int fortfahren;
      int Operand;
    
      char Antwort;
      fortfahren = 1;
    
      printf( "\n" );
      printf( "Ewiger Kalender zur Berechnung des Wochentages\n" );
      printf( "==============================================\n" );
    
      while ( fortfahren==1 )
      {
        printf( "\n" );
        printf( "Bitte geben Sie den Tag ein : " );
        scanf( "%d", &T );
        printf( "Bitte geben Sie den Monat ein : " );
        scanf( "%d", &M );
        printf( "Bitte geben Sie das Jahr ein (4-stellig): " );
        scanf( "%d", &Jahr );
        printf( "Der %i. %i. %i ist ein ", T, M ,Jahr);
    
        if ( M<=2 )
        {
          M = M+12;
          Jahr = Jahr-1;
        }
    
        Jh = Jahr/100;
        J = Jahr%100;
    
        Operand = T + ((M+1)*26)/10 + J + J/4 + Jh/4 - 2*Jh;
        /*printf("%d",Operand); nur zur Ueberpruefung*/
        Wt = (Operand) % 7;
    
        switch ( Wt )
        {
          case 1: 
    	printf( "Sonntag \n\n" );break;
          case 2:
            printf( "Montag \n\n" );break;
          case 3:
            printf( "Dienstag \n\n" );break;
          case 4:
            printf( "Mittwoch \n\n" );break;
          case 5:
            printf( "Donnerstag \n\n" );break;
          case 6:
            printf( "Freitag \n\n" );break;
          case 0:
            printf( "Samstag \n\n" );break;
          default:
            printf( "Wenn alles normal laeuft, darf dieser Fall nicht auftreten !" );
        }
    
        printf( "Wollen Sie fortfahren und einen weiteren Wochentag berechnen ? " );
        /*getchar();*/
        scanf(" %c", &Antwort);
        if ( Antwort=='j' || Antwort=='J' ) fortfahren = 1;
        else fortfahren = 0;
      }
    
      return 0;
    }
    

    f.-th. schrieb:

    Die Komplettlösung hat noch ein paar kleine Fehlerchen 😃

    Ausgiebig testen kann nicht schaden 🕶

    Mit meinen Tests hat es MEIST funtioniert. Hab deswegen mal "operand" ausgeben lassen, dieser war bei manchen Tagen (fast ganzen März Jahr 2000) negativ.
    Meine Idee wäre, "operand" oder "wt" als unsigned int zu deklarieren,aber war nicht nötig und evtll. würde die Formel nicht mehr stimmen.
    Glücklicherweise sollte das Programm nur für ein paar wenige Beispiele funtionieren, darauf sollten wir davon ausgehen,dass das Programm einwandfrei funtioniert. 😃



  • ...



  • ...



  • omg090 schrieb:

    ...

    kann jemand diesen Thread löschen?



  • ...


Anmelden zum Antworten