Division ganzer Zahlen
Die Division hat in C einen Haken. Versuche zu raten, was diese Anweisung ausgibt:
printf("%d\n", 7 / 2);Das gibt Folgendes aus:
3Nicht 3,5, sondern 3. Wenn du zwei ganze Zahlen teilst, ist das Ergebnis auch eine ganze Zahl: C wirft die Nachkommastellen weg. Es rundet nicht, es schneidet sie einfach ab, deshalb ist 19 / 10 gleich 1 und 2 / 3 gleich 0. Das heißt Ganzzahldivision.
Sie funktioniert wie die Division mit Rest aus der Grundschule: wie oft eine Zahl in eine andere passt. Den Rest liefert der Operator % (Programmierer nennen ihn Modulo):
printf("%d\n", 7 / 2);
printf("%d\n", 7 % 2);
printf("%d\n", 10 % 5);Das gibt Folgendes aus:
3
1
0Die Zwei passt dreimal in die Sieben (3 × 2 = 6), und 1 bleibt übrig. Wenn die Division genau aufgeht, ist der Rest 0. So erkennst du gerade und ungerade Zahlen: Eine gerade Zahl lässt bei der Division durch zwei den Rest 0, eine ungerade den Rest 1.
Verwechsle die beiden Aufgaben des %-Zeichens nicht. In der Formatzeichenkette beginnt es eine Formatangabe wie %d. Außerhalb der Anführungszeichen, zwischen zwei Zahlen, berechnet es den Rest. In printf("%d\n", 7 % 2); gehört das erste % zu %d, und das zweite rechnet.
Die Ganzzahldivision ist zum Beispiel für Zeitangaben praktisch. 135 Minuten sind 2 Stunden (135 / 60) und 15 Minuten (135 % 60):
int minuten = 135;
printf("%d h %d min\n", minuten / 60, minuten % 60);Das gibt Folgendes aus:
2 h 15 min% funktioniert nur mit ganzen Zahlen. Mit einem double, wie in 7.5 % 2, lässt sich das Programm nicht kompilieren, und der Compiler meldet invalid operands to binary expression ('double' and 'int'). Die Operanden sind die Werte auf beiden Seiten eines Operators, und ein double passt nicht zu %.
So schreibst du es:
Anweisungen
- 1
Vier Freunde haben Pizzen bestellt, die insgesamt in 18 Stücke geschnitten sind. Wie viele ganze Stücke bekommt jeder von ihnen? Berechne es aus den Variablen und gib aus:
Stücke pro Person: 4 - 2
Wie viele Stücke bleiben übrig? Berechne es mit
%und gib es in der nächsten Zeile aus:Stücke übrig: 2 - 3
Die Pizzeria sagt, dass die Lieferung 75 Minuten dauert. Lege darunter eine Variable
lieferzeitvom Typintmit dem Wert75an und gib sie in Stunden und Minuten aus, berechnet mit/und%:Lieferung in 1 h 15 min