Was macht das Hier
-
Hallo Leute,
ich soll herausfinden, was folgender Code macht. Leider kriege ich den nicht ans laufen. Die Funktion akzeptiert angeblich Zahlen zwischen 1-3999. Wenn einer da durchsieht, könnte er ja mal versuchen, den Code zu erklären. Angeblich sieht man am Resultat sofort, was passiert. Vielen Dank für die Hilfe.
Gruß
Hanschar* was(int x) { char*t=(char*)malloc(10); int i=7,j=0,v=5000,p,z[7]={0x49,0x56,0x58,0x4c,0x43,0x44,0x4d}; while(!(t[j]='\0')&&x&&(v/=5/((i--+1)%2+1))+1) { while(x>=v&&(x-=v)+1&&(t[j++]=z[i])+1); while(i&&x>=(p=v-v*(i%2+1)/10)&&(x-=p)+1&&(t[j++]=z[i-2+(i%2)])+1&&(t[j++]=z[i])+1);} return t; }
-
Angeblich sieht man am Resultat sofort, was passiert.
Dann probier's halt aus.
-
Das ist ja das Problem, ich krieg das nicht ans laufen. Sonst hätte ich das mal ausprobiert.
-
GeoHans schrieb:
Das ist ja das Problem, ich krieg das nicht ans laufen. Sonst hätte ich das mal ausprobiert.
Ich will dir ja nicht die Hausaufgaben abnehmen: Was gibt es denn daran nicht zum Laufen zu bekommen? Das ist 100% korrekter Code.
P.S.: Und es ist wirklich offensichtlich was das macht, wenn man es durchlaufen lässt. Das Ergebnis hätte ich aber vom reinen Überfliegen des Codes auch nicht erwartet
.
-
Und siehe da, wenn man sich selbst nicht die Finger schmutzig machen will, lässt man andere das für sich machen:
http://codepad.org/Yp97zsz8
Da sieht man auch, dass die Römer noch keine 0 gekannt haben.
-
Alles klar! Vielen Dank Leute!
Hatte nen dummen Fehler im Programm und habs deshalb nicht ans Laufen gekriegt.
Gruß Hans