Schaltjahr
-
hi!!
ich hab gerade so ein kleines problem... hab auf dem pc keine c++ programm drauf und dann des programm gerade net teste, kann mir bitte wer von euch sagen, ob des programm funktz??angabe: eine jahreszahl, ist zu überprüfen, ob es sich um ein schaltjahr handelt und wiederrum auszugeben
hinweis: ist die jahreszahl durch 400 teilbar bzw. durch 4teilbar UND durch 100 nicht teilbar, so handelt es sich um ein schaltjahr
#include<stdio.h>
#include<conio.h>void main()
{
int jahr;clrscr();
printf("Berechnung eines Schaltjahres!!");
printf("\n\nGeben sie eine Jahreszahl fr die Bestimmung eines Schaltjahres ein: ");
scanf("%d", jahr);if(jahr%400==0)
{
printf("\n\n\nEin Schaltjahr liegt vor.");
}else
{
if(jahr%4==0&&jahr%100==0) /* Hier san meine Aufzeichnungen unvollständig!! müsste doch "jahr%100!=0" sein und net gleich, oder??*/
{
printf("\n\nSchaltjahr liegt vor.");
}
else
{
printf("\n\nEs liegt kein Schaltjahr vor.");
}
}
}nur zur probe:
1996 is ein schaltjahr, weil durch 4teilbar aber nicht durch 100
2000 ist schaltjahr, weil durch 100teilbar
1800 is kein schaltjahr, weil durch 4 UND AUCH durch 100 teilbar, jedoch net durch 400
1333 kein schaltjahr, weil net durch 4teilbar..thx, mfg, miaui
-
deleted: war nicht korrekt, sorry
-
dein code is nicht korrekt!
ein schaltjahr liegt vor, wenn die jahreszahl ohne rest durch 400 oder
ohne rest durch 4 und mit rest durch 100 teilbar ist.if ( (year%4==0 && year%100!=0)||year%400==0) printf("Schaltjahr\n");
ausserdem heisst es:
scanf("%d", &jahr);
und die funktion clrscr() ist auch kein ansi.
benutz doch das nächstemal code-tags
b4sh0r
-
Wie wäre es einfach mal mit nem Schreibtischtest?
Einfach mal mit paar Werten durchrechnen..
-
ich weiß.... ich hab die version unverbessert gespeichert... das san a paar fehler..... trotzdem danke
-
außerdem soll er zuerst prüfen, ob es durch 400teilbar is... es muss net auch noch durch 400teilbar sein.... ich wollt nur wissen, ob es == oder != war...
PS: wir werden gezwungen, jedes mal die anzeige zu löschen, via clrscr()....
-
die korrekte, funktionierende version gefunden
thx at allPS:
#include<stdio.h>
#include<conio.h>void main()
{
int jahr,schaltjahr;clrscr();
printf("Berechnung eines Schaltjahres!!");
printf("\n\nGeben sie eine Jahreszahl fr die Bestimmung eines Schaltjahres ein: ");
scanf("%d",& jahr);if(jahr%400==0)
{
schaltjahr=1;
}else
{
if(jahr%4==0&&jahr%100!=0)
{
schaltjahr=1;
}
else
{
schaltjahr=0;
}
}if(schaltjahr)
{
printf("\n\nEs liegt ein Schaltjahr vor.");
}
else
{
printf("\n\nEs liegt kein Schaltjahr vor.");
}}
-
hier meine version (C++)
#include <iostream> using namespace std; void main() { int year; cout<<"Programm zum Ueberpruefen einer Jahreszahl auf Schaltjahreseigenschaft."<<endl; cout<<"Jahreseingabe: "<<endl; cin>>year; if ((year%4==0 && year%100!=0)||year%400==0) { cout<<"Das Jahr "<<year<<" ist ein Schaltjahr."<<endl; } else { cout<<""<<year<<" ist kein Schaltjahr!"<<endl; } }
mfg rum
-
rum schrieb:
hier meine version (C++)
Das ist KEIN C++!
-
öm o_O
jetz muss ich mal dumm fragen was daran nicht c++ nicht, weil ich im ersten semester C hatte und ich mich an printf und scanf noch erinnern kann
mfg rum
(ein irrtum existiert um berichtigt zu werden^^)
edit:
arg; hab grad den kleinen link geklickt, und mir das hello world mal angegugt^^
--AUA--
-
rum schrieb:
öm o_O
jetz muss ich mal dumm fragen was daran nicht c++ nicht, weil ich im ersten semester C hatte und ich mich an printf und scanf noch erinnern kann
mfg rum
(ein irrtum existiert um berichtigt zu werden^^)
ich nehme mal an, er meint das void main()
es MUSS richtig int main() oder int main(int, char*) heissen (weitere varianten mit anderen argumenten dürfen durch den compiler implementiert werden, aber der return typ muss STETS int sein).
void main() war in C++ noch nie legal.
-
aahhhh
gut zu wissen
danke
mfg rum
-
das void main is compilerabhängig.... ich sag nur borland
-
miaui schrieb:
das void main is compilerabhängig.... ich sag nur borland
nein, ist es nicht. Es ist verboten. Die Sprache C++ wir nicht von irgendwelchen Compilerbauern festgelegt.
-
camper schrieb:
es MUSS richtig int main() oder int main(int, char*) heissen (weitere varianten mit anderen argumenten dürfen durch den compiler implementiert werden, aber der return typ muss STETS int sein).
void main() war in C++ noch nie legal.
wenn schon, dann
int main (int, char**)
-
Würde es nicht auch reichen das Jahr nur durch 4 zu dividieren?
z.B. 2000%4 == 0, 20016%4 == 0;MfG CSS
-
Horst2 schrieb:
camper schrieb:
es MUSS richtig int main() oder int main(int, char*) heissen (weitere varianten mit anderen argumenten dürfen durch den compiler implementiert werden, aber der return typ muss STETS int sein).
void main() war in C++ noch nie legal.
wenn schon, dann
int main (int, char**)
genauer: int main(int, char*[]), kleiner fehler von mir.
-
CSS schrieb:
Würde es nicht auch reichen das Jahr nur durch 4 zu dividieren?
z.B. 2000%4 == 0, 20016%4 == 0;MfG CSS
Nein, denn Das Jahr z.B. 200 ist kein Schaltjahr.
Caipi
-
die aufgabe kommt mir irgendwie bekannt vor, hier die lösungen:
http://www.volkard.de/vcppkold/else_dem_richtigen_if_zuordnen__loesungsvorschlag_a.html
http://www.volkard.de/vcppkold/else_dem_richtigen_if_zuordnen__loesungsvorschlag_b.html
-
Walli schrieb:
rum schrieb:
hier meine version (C++)
Das ist KEIN C++!
sorry, aber bis auf das 'void main' ist alles c++; es wäre mir neu wenn es in c ein 'using namespace std;' gab (verbessert mich falls ich mich irre)