Rückgabewert einer Bool-Funktion [gelöst]
-
Hallo Ihrs,
bin grad dabei erste kleine Progrämmchen zu schreiben, hab das Prob dass die Auswertung des Rückgabewerts einer BOOL-Funktion Sorgen macht.
Das Programm macht mir aus jedem Jahr ein Schaltjahr... ist garantiert nur was Kleines, aber ich sitz hier und komm nicht drauf... << PEBCAK#include <iostream> bool istSchaltjahr(int j); using namespace std; int main() { int jahr; cout << "Welches Jahr ist ein Schaltjahr?" << endl; cout << "Bitte eine Jahreszahl eingeben:" << endl; cin >> jahr; istSchaltjahr(jahr); if (true) cout << jahr << " ist ein Schaltjahr" << endl; else if (false) cout << jahr << " ist KEIN Schaltjahr" << endl; } bool istSchaltjahr(int j) { // int test = jahr%4; if (j%4 == 0) j=true; else j=false; return j; };
Thx for help, Tom
-
bool istSchaltjahr(int j) { return (j%4 == 0) };
-
Es gab aber noch mehr Bediengungen für ein Schaltjahr.
Ich glaub da war noch was mit
%100 != 0
und
%200 == 0
-
tomcat22 schrieb:
#include <iostream> bool istSchaltjahr(int j); using namespace std; int main() { int jahr; cout << "Welches Jahr ist ein Schaltjahr?" << endl; cout << "Bitte eine Jahreszahl eingeben:" << endl; cin >> jahr; istSchaltjahr(jahr); if (true) //DAS ist immer WAHR, deine Funktion ist dabei irrelevant cout << jahr << " ist ein Schaltjahr" << endl; else if (false) cout << jahr << " ist KEIN Schaltjahr" << endl; } bool istSchaltjahr(int j) { // int test = jahr%4; if (j%4 == 0) j=true; else j=false; return j; };
Thx for help, Tom
-
the_alien schrieb:
Es gab aber noch mehr Bediengungen für ein Schaltjahr.
Ich glaub da war noch was mit
%100 != 0
und
%200 == 0das ist mir klar und das kommt auch noch, aber ich hab die bool-funktion falsch angewendet. jetzt hab ichs so, aber er macht mir aus jedem jahr ein schaltjahr...
istSchaltjahr(jahr); if (true) cout << jahr << " ist ein Schaltjahr" << endl; else if (false) cout << jahr << " ist KEIN Schaltjahr" << endl; } bool istSchaltjahr(int j) { // int test = jahr%4; return (j%4 == 0);
-
the_alien schrieb:
Es gab aber noch mehr Bediengungen für ein Schaltjahr.
Ich glaub da war noch was mit
%100 != 0
und
%200 == 0Nein.
Die Bedingungen für ein Schaltjahr sind: Es muss durch 4 aber nicht durch 100 teilbar sein. Außerdem sind alle Vielfachen von 400 Schaltjahre.Daraus folgt die Funktion:
bool isLeapYear(const unsigned int year) { if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) return true; return false; }
Caipi
-
tomcat22 schrieb:
istSchaltjahr(jahr); if (true) cout << jahr << " ist ein Schaltjahr" << endl; else if (false) cout << jahr << " ist KEIN Schaltjahr" << endl; } bool istSchaltjahr(int j) { // int test = jahr%4; return (j%4 == 0);
Keine Ahnung was du dir vorstellst, aber du musst den Rückgabewert deiner Funktion überprüfen...
if(istSchaltjar(jahr)){ //is }else{ //is nich }
true ist true... daran änderst du mit deiner Funktion doch nichts...
-
war mir über die korrekte anwendung der bool-funktion nicht im klaren, aber jetzt funzt's! danke für eure hilfe!
tom