Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Schaltjahr-Aufgabe Anfänger

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
24.03.2020, 10:23 Uhr
mph02



Hallo zusammen,
habe gestern mit C++ angefangen und hatte die Aufgabe, bei einer gegebenen Zahl zu prüfen, ob es sich um ein Schaltjahr handelt. Mein Code hat aber wohl Fehler, beim Kompilieren kommt nur "errors". Könnt ihr mir bitte helfen? Danke


C++:
#include <iostream>

int main() {
  
  int inputyear = 0;
  
  
  std::cout << "Insert year: \n";
  std::cin >> inputyear;
  
  if (inputyear >= 1000 and inputyear <= 9999){
      
      // Now check if it's a leap year
      if (inputyear % 4 == 0) {
        //Means it is evenly divisible by 4. We can continue checking.
        
         if (inputyear % 100 == 0 and inputyear % 400 != 0) {
          std::cout << "It is not a leap year.\n";
         }
         if else (inputyear % 400 == 0) {
           std::cout << "It is a leap year.\n";
         }
      }
      else {
        // Means it is not evenly divisible by 4. It can't be a leap year.
        std::cout << "It is not a leap year.\n";
      }
      
        
    
    
  }
  else {  // Tells you that it's not possible to say
  
    std::cout << "Not possible to say or invalid year.\n"
  
  }
  
  
}


Dieser Post wurde am 03.05.2020 um 18:21 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
25.03.2020, 20:54 Uhr
ao

(Operator)


Hallo,
das sind nur Kleinigkeiten:
1. es heißt else if und nicht if else
2. nach der letzten Ausgabe (Not possible to say ...) fehlt ein Semikolon.
Danach kompiliert es.

Ich habe unten die Syntaxfehler behoben und einen else-Block eingefügt, um dir etwas bei der Weitersuche zu helfen. Deine Bedingungen für ein Schaltjahr sind nämlich noch nicht ganz richtig, probier mal 2020.


C++:
#include <iostream>

int main() {

    int inputyear = 0;


    std::cout << "Insert year: \n";
    std::cin >> inputyear;

    if (inputyear >= 1000 and inputyear <= 9999){

        // Now check if it's a leap year
        if (inputyear % 4 == 0) {
        //Means it is evenly divisible by 4. We can continue checking.

            if (inputyear % 100 == 0 and inputyear % 400 != 0) {
                std::cout << "It is not a leap year.\n";
            }
            else if (inputyear % 400 == 0) {
                std::cout << "It is a leap year.\n";
            }
            else
            {
                std::cout << "xxx" << std::endl;
            }                
        }
        else {
        // Means it is not evenly divisible by 4. It can't be a leap year.
        std::cout << "It is not a leap year.\n";
        }
    }
    else { // Tells you that it's not possible to say

        std::cout << "Not possible to say or invalid year.\n";

    }
}
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
29.03.2020, 19:03 Uhr
f.-th.



Hat nur indirekt mit deiner Aufgabe zu tun:

C++:

...
    if (inputyear >= 1000 and inputyear <= 9999){
...



Der gregorianische Kalender wurde erst 1582 im Einflussbereich des Papst Gregor des XIII der katholischen Kirche eingeführt. Vorher galt der julianische Kalender. Da letzterer nicht ganz dem astronomischen Jahr entspricht "wanderte" z.B. der Frühlingsanfang, was Einfluss auf die Aussaat in der Landwirtschaft hatte, wenn diese sich an Traditionen, bezogen auf Daten aus dem julianischen Kalender orientierten. Deshalb wurden damals "Korrekturtage" beim Übergang vom julianischen auf den gregorianischen Kalender eingeführt.

Auch wurde die Einführung des gregorianischen Kalender, da wo er heute anerkannt wird, nicht überall zeitgleich eingeführt.

Z.B. orientiert sich die orthodoxe Kirche immer noch am julianischen Kalender, deshalb wird dort Weihnachten nicht zeitgleich mit der katholischen Kirche zelebriert.

Neben religiösen beeinflussten auch politische Rahmenbedingungen den Zeitpunkt der Einführung des gregorianischen Kalenders.
In der Schweiz zog sich je nach Gemeinde die Umstellung von 1700 bis 1812 hin. Der russische Staat führte den gregorianischen Kalender im Februar 1918 ein.


Falls ihr also geschichtliche Daten vergleichen wollt, müsst ihr die historische und regionale Gültigkeit von Kalendern berücksichtigen. Es kann in dem Zusammenhang auch sein, das schon Änderungen an den Daten vorgenommen wurden. Bisher weichen der julianische und der gregorianische Kalender ja noch weniger als einen Monat voneinander ab.

MfG
f.-th.

Dieser Post wurde am 29.03.2020 um 19:16 Uhr von f.-th. editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
28.04.2020, 15:46 Uhr
Zizzlag



Hallo

Ich bin nur ein Anfänger aber müsste es in der logischen Verknüpfung , in Zeile


Zitat:


if(inputyear >=1000andinputyear <=9999){




nicht das\ein ampersand sein?
So ließe sich das nicht compilieren....

Ich bitte um entschuldigen solle ich etwas übersehen haben.
Danke.

Grüße und bleibt gesund

Dieser Post wurde am 28.04.2020 um 15:48 Uhr von Zizzlag editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
03.05.2020, 18:24 Uhr
FloSoft
Medialer Over-Flow
(Administrator)



Zitat von Zizzlag:
Hallo

Ich bin nur ein Anfänger aber müsste es in der logischen Verknüpfung , in Zeile


Zitat:


if(inputyear >=1000 and inputyear <=9999){




nicht das and ein ampersand sein?



ja das muss && lauten.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: