Die ganzzahlige Division und der Rest in C
In C wird die ganzzahlige Division mit dem Divisionsoperator "/" geschrieben, der auch für die Gleitkommazahlen-Division verwendet wird. Die Division wird dann ganzzahlig ausgeführt, wenn beide Operanden ganzzahlig sind.
Die Modulo-Operation wird in C mit dem Prozentzeichen "%" notiert. So bedeutet also der Ausdruck "2 % 3" den Wert 2 mod 3.
Das folgende Beispielprogramm zeigt die Verwendung der Modulo-Operation in C.
modulo.c
#include <stdio.h>
int main()
{ printf( "%d\n", 22 % 7 ); }stdout
1
- Übungsaufgabe Fuhren *
- Ein Taxi kann höchstens drei Touristen vom Hotel zum Aussichtsturm transportieren. Schreiben Sie mit Hilfe der Ihnen bekannten C -Operatoren ein Programm, das die Zahl t der benötigten Taxis für z.B. 10 Touristen ausgibt. Um das richtige Ergebnis für eine andere Anzahl von Touristen auszugeben, soll im Programm nur das Numeral "10" durch ein entsprechendes anderes Numeral ersetzt werden müssen.
- Übungsaufgabe Stunden *
- Schreiben Sie ein C -Programm, das ausgibt, welche Uhrzeit 1000 Stunden nach Mitternacht ist.
- Übungsaufgabe Tage *
- Schreiben Sie ein C -Programm, das ausgibt, welcher Tag des Jahres der 193. Tag ist, wenn der 70. Tag des Jahres ein Mittwoch ist. Die Ausgabe soll die Codes 0 bis 6 zur Kennzeichnung der Tage Mittwoch (=0) bis Dienstag (=6) verwenden.
- Übungsaufgabe trunc oder floor? **
- Die größte ganze Zahl kleinergleich x wird auch floor( x ) geschrieben (es handelt sich also um die ganze Zahl direkt „unter“ x ). Der ganzzahlige Anteil von x wird auch trunc( x ) geschrieben (es handelt sich hierbei um die Zahl, die man erhält, indem man alle Stellen nach dem Komma entfernt). ( x div y ) wird in manchen Programmiersprachen nach Knuth als floor( x / y ) und in anderen nach Wirth als trunc( x / y ) definiert. Welche der beiden Definitionen wird in C für die ganzzahlige Division bzw. für die Restberechnung mit dem Operator "%" verwendet?