[GELÖST]Operator % und /
-
Guten Abend... und wieder eine Frage von mir
Ich habe folgende (ganz einfache) Übungsaufgabe gemacht:
#include <stdio.h> main() { int jahr; printf("\nS C H A L T J A H R - R E C H N E R\n"); printf("\nBitte geben Sie eine Jahreszahl ein: "); scanf("%i", &jahr); if (jahr % 4 == 0) if (jahr % 100 == 0) if (jahr % 400 == 0) printf( "Das von Ihnen eingegebene Jahr '%i' ist ein Schaltjahr.", jahr); else printf( "Das von Ihnen eingegebene Jahr '%i' ist KEIN Schaltjahr.", jahr); else printf("Das von Ihnen eingegebene Jahr '%i' ist ein Schaltjahr.", jahr); else printf("Das von Ihnen eingegebene Jahr '%i' ist KEIN Schaltjahr.", jahr); }
Mich würde jetzt interessieren, wieso ich den "%" Operator benutzen muss anstelle von "/".
Müsste "/" denn nicht auch funktionieren!?
Divisionsoperator = /
Divisionsrest = %Wenn ich aber z.B. "if (jahr / 4 == 0)" eingebe und mit der Zahl "4" die Aufgabe teste, erscheint "Das von Ihnen eingegebene Jahr '4' ist KEIN Schaltjahr."
TZZZ vermutlich hätte ich beim Abi in Mathe besser aufpassen sollen
Danke schon jetzt für eure Mühe und Geduld
-
Was ist 2012 / 4? Was hilft Dir das bei der Frage, ob 2012 ein Schaltjahr ist?
-
Der Modulo-Operator % gibt dir nur den Rest der Division zurueck. Der Divisions-Operator / gibt das Resultat der Division zurueck.
Beispiel:
400 % 4 = 0, da 400 = 4 * 100 + 0, also Rest 0
400 / 4 = 100 (normale Division halt)
-
Dein Code testet ein paar mal auf Teilbarkeit:
if (a % b == 0) { // a ist durch b teilbar }
^^ Also: wenn a ein Vielfaches von b ist, dann ist die Bedingung erfüllt.
-
Hey Danke! Jetzt habe ich es (endlich) verstanden... Schönen Abend noch
-
SG1 schrieb:
Was ist 2012 / 4? Was hilft Dir das bei der Frage, ob 2012 ein Schaltjahr ist?
Naja bin gerade am Üben - der Titel mit "Schaltjahr-Recher" ist wohl dämlich gewählt...da hast du Recht