008
30.09.2003, 20:13 Uhr
0xdeadbeef
Gott (Operator)
|
ACHTUNG, fortgeschrittener Code. Als Anfänger muss man das nicht verstehen. Das hier ist ein Duff's Device:
C++: |
#include <stdio.h>
int main() { int n, i = 0, cnt; scanf("%d", &n); cnt = n/8;
switch(n % 8) { do { printf("%d\n", ++i); case 7: printf("%d\n", ++i); case 6: printf("%d\n", ++i); case 5: printf("%d\n", ++i); case 4: printf("%d\n", ++i); case 3: printf("%d\n", ++i); case 2: printf("%d\n", ++i); case 1: printf("%d\n", ++i); case 0: } while(cnt--); } }
|
Das ist gültiges ANSI-C, und es macht in diesem Fall sogar Sinn. Durch das switch springt man in die Schleife rein, an der passenden Stelle, so dass man im Endeffekt nur ein Achtel der Sprunganweisungen hat. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra |