3 Probleme



  • Zu 2.

    jahre=tag/365;
    
      tage=tag%365;   // 0- 364
      monate=tage/30; 
      jahre=tage/365; // Warum hier nochmal? Da kann nur 0 rauskommen
      tage=tag%365;   // tage=tage%30
    


  • jahre=tag/365;
    
      tage=tag%365;   // 0- 364
      monate=tage/30;
      jahre=tage/365; // Warum hier nochmal? Da kann nur 0 rauskommen
      tage=tag%365;   // tage=tage%30
    

    das eine ist jahre=tag/365 das andere ist jahre=tage/365, das heißt eines gehört weg?



  • Siehe mein Edit in meinem Post....
    Sonst eig:

    jahre=tag/365;
      tag = tag - (jahre * 365);
      monate=tag/30;
      tag = tag - (monate * 30);
    

    tage kannste löschen und im printf durch tag ersetzten....Spart Variabeln...



  • Ich hab jz eingefügt was gekommen ist von euch, und beim ersten Post kommt wenn ich 31 Tage eingebe: 1 monat 31 Tage und beim 2. Post kommtn erorr den ich wiederholen ignoreiren oder abbrechen kann....



  • Du husst wie gesagt es etwas ändern:

    #include <stdio.h>
    
    int main()
    {
      int tag;
      int monate;
      int jahre;
    
      printf("Bitte geben Sie die Anzahl der Tage ein: ");
    
      scanf("%d",&tag);
    
      jahre=tag/365;
      tag = tag - (jahre * 365);
      monate=tag/30;
      tag = tag - (monate * 30);
    
      printf("genauer : %d jahre, %d monate, %d tage",jahre,monate,tag);
    
       return 0;
    
    }
    

    Wegen der Aufgabenstellung, so schwer ist das auch nicht:

    #include <stdio.h>
    
    int main()
    {
        int zahl1;
        int zahl2;
    
      printf("Bitte Zahl1 eingeben: ");
    
      scanf("%d", &zahl1);
    
      printf("\nBitte Zahl2 eingeben: ");
    
      scanf("%d", &zahl2);
    
      zahl1 = zahl1 * zahl2;  
    
      printf("\nBitte Zahl3 eingeben: ");
    
      scanf("%d", &zahl2);
    
      printf("\nDas Produkt lautet %d\n", zahl1 * zahl2);
    
      return 0;
    }
    


  • DirkB schrieb:

    Zu 2.

    jahre=tag/365;
    
      tage=tag%365;   // 0- 364
      monate=tage/30; 
      jahre=tage/365; // Warum hier nochmal? Da kann nur 0 rauskommen
      tage=tag%365;   // tage=tage%30
    

    Wenn ich das hier durch das ersetze kommt bei 761 Tagen: 2 Jahre 1 monat 31 Tage wobei jedoch gehört: 2 jahre 1 monat 1 tag.

    Das steht jz drinnen:

    #include <stdio.h>
    
    int main()
    {
      int tag;
      int tage;
      int monate;
      int jahre;
    
      printf("Bitte geben Sie die Anzahl der Tage ein: ");
    
      scanf("%d",&tag);
    
      jahre=tag/365;
    
      tage=tag%365;   // 0- 364
      monate=tage/30;
      tage=tag%365;   // tage=tage%30 
      printf("genauer : %d jahre, %d monate, %d tage",jahre,monate,tage);
    
       return 0;
    
    }
    


  • Du ermittelst die Jahre:
    jahre=tag/365;

    Dann musst du nur noch die Tage in einem Jahr berücksichtigen:
    tage=tag%365; // 0 <= tage <= 364

    Das gleich für monate:
    monate=tage/30; // 0 <= monate <= 12 ( ab 360 Tage bist du im 12. Monat)

    Bis hierhin ok.
    jahre=tage/365;
    tage sind max 364. Dann kann da 364/365 stehen. Das sind 0,99726... was als int aber 0 ist. Bringt also nichts

    tage=tag%365;
    tage sind max 364. Der Rest der Division mit 365. Da tag immer kleiner als 365 ist, steht da tage=tag. Bringt also nichts

    Du suchst:
    tage=tage%30; // Der Rest der Tage in einem Monat.



  • Wie gesagt, nimm mal den Code von meinem Post hiervor...



  • Ok Danke das mit Monate geht jz, danke 😉

    Aber das es dann nur mit Produkt aus Zahl 1 und Zahl 2 weiterrechnet das geht nicht, z.B. Zahl 1:3
    Zahl2:3
    Zahl3:5

    = 45 kommt raus normalerweise sollte ja 9 rauskommen...



  • tage=tag%365;   // tage=tage%30
    

    Du weißt was // ist? Da ist ein einzeiliger Kommentar. Der geht von // bis zum Ende der Zeile.

    Ich habe dam meine Kommentare als Hinweise hingeschrieben.
    Nachdenken solltest du aber auch noch.



  • ich bin dumm^^ so dumm^^ das von derFer hat eh gepasst, ich bin so eint rottel echt....^^ danke 😃 und noch eine kleinigkeit, das ist für euch sicher nichts aber ich ja, ich schreibs mal rein:

    Schreiben Sie ein Programm, das Sie nach drei Zahlen fragt und dann die Summe der drei Zahlen
    ausgibt. Nachdem die Summe ausgegeben wurde, soll nach einer neuen Zahl gefragt werden, mit der
    die Summe dann multipliziert wird. Dieses Ergebnis soll ebenfalls ausgegeben werden. Die Ein- und
    Ausgabe aussehen wie im folgenden Beispiel:
    Bitte Zahl1 eingeben: 4
    Bitte Zahl2 eingeben: 6
    Die Summe lautet 10
    Bitte Zahl3 eingeben: 8
    Das Produkt lautet 80

    #include <stdio.h>
    
    int main()
    {
    	int zahl1;
    	int zahl2;
    	int zahl3;
    
      printf("Bitte Zahl1 eingeben: ");
    
      int zahl1 = 0;
      scanf("%d", &zahl1);
    
      printf("\nBitte Zahl2 eingeben: ");
    
      int zahl2 = 0;
      scanf("%d", &zahl2);
    
      printf("\nDie Summe lautet %d\n", zahl1 + zahl2);
    
      printf("\nBitte Zahl3 eingeben: ");
    
      int zahl3 = 0;
      scanf("%d", &zahl3);
    
      print("\nDas Produkt lautet %d", zahl1 * zahl2 + zahl3);
    
      return 0;
    }
    


  • DirkB schrieb:

    tage=tag%365;   // tage=tage%30
    

    Du weißt was // ist? Da ist ein einzeiliger Kommentar. Der geht von // bis zum Ende der Zeile.

    Ich habe dam meine Kommentare als Hinweise hingeschrieben.
    Nachdenken solltest du aber auch noch.

    Dass das ein Kommentar ist weiß ich, so blöd bin ich auch wieder nicht, n bisschen versteh ich das auch 😃



  • 3*3*5 != 9



  • Punkt vor Strichrechnung. 😮



  • Hä?
    Der Code macht folgendes:
    eigabe 1 -> Zahl1
    eingabe 2 -> Zahl2
    Zahl1 = Zahl1 * Zahl2 (also Produkt aus Zahl1 und Zahl2)
    eingabe 3 -> ersetzt jetzt wert von Zahl2
    Zahl1 = Zahl1 (also Produkt aus Zahl1 und Zahl2) * Zahl2 (also eingabe 3)
    ausgabe : Produkt aus eingabe 1, eingabe 2 und eingabe 3.

    Wie in der Aufgabenstellung beschrieben:

    Schreiben Sie ein Programm, bei dem drei Zahlen multipliziert werden, das aber nur zwei Variablen
    benötigt. Lassen Sie das Ergebnis ausgeben. Entwerfen Sie das Programm so, dass nur das Produkt
    noch weiter verwendet werden könnte.

    Daraus entnehme ich:
    2 Variabel,
    Ergebnis am ende: Produkt aus ALLLEN DREI Eingaben.
    Am Ende kann NUR noch mit dem PRODUKT aus ALLEN DREI Eingaben weiter gerechnet werden.



  • Blurp_ schrieb:

    Dass das ein Kommentar ist weiß ich, so blöd bin ich auch wieder nicht, n bisschen versteh ich das auch 😃

    Hat aber ein bischen gedauert bis du das in deinem Programm hattest 😃



  • Wuhuw, danke an ALLE die mit geholfen haben, DANKE, die letzten paar Kommis hab ich gar ned gelesen und trotzdem hingekriegt, ohne internet oder so 😃

    Also danke an euch, wirklich danke, jz kann ich es sorgenfrei abgeben,

    PS: ich bin erst 15 Jahre und wir haben greade erst begonnen zu programmieren, also entschuldigt meine Dummheit, danke leute, danke !!!



  • Bitte, bin aber auch nicht viel älter (ok aber doch etwas 😉 )
    Und wir hatten kein Proggen an der Schule oder sonst wo....

    PS: Für die Zukunft:

    die

    int zahl1 = 0;
    

    kannst du dir sparen, es reicht das int zahl 1; am Anfang und dann das scanf....



  • passt danke 😃

    Danke an alle nochmal



  • Blurp_ schrieb:

    PS: ich bin erst 15 Jahre und wir haben greade erst begonnen zu programmieren, also entschuldigt meine Dummheit, danke leute, danke !!!

    Deswegen gibts auch nur Hinweise (zum Nachdenken) und keine Lösung.


Anmelden zum Antworten