ohne es jetzt prüfen zu können (arbeite in der fa. auf ibm-mainframe): ich glaube, Dein 2. Ansatz ist jetzt 'richtig falsch' *g*
Warum?
Code:
for(i=0; i<100; iwerte[i++]= pow(i+1,2));
erster Durchlauf:
Code:
iwerte[0] = pow(1+1,2);
also konkret:
in weiterer Folge:
Code:
iwerte[1] = 9;
iwerte[2] = 16;
usw.
Code:
for (i=0; i<100; printf("%d\t%d\n", (i++)+1, iwerte[i]));
erster Durchlauf:
Code:
printf("%d\t%d\n", (0)+1, iwerte[1]));
Ausgabe:
usw.
Bei i=99 (also letzter Schleifendurchlauf) würde das Prog versuchen, auf iwerte[100] zu zu greifen, was entweder einen Zufallswert oder (hängt von Compiler und Einstellung ab) einen Absturz (segmentation fault) zu Folge haben müßte.
korrekt wäre IMHO (wie prinzipiell auch schon in meinem letzten Posting angegeben) :
Code:
for ( i = 0; i < 100; iwerte[i] = pow( ++i, 2) );
for ( i = 0; i < 100; printf( "%d\t%d\n", i + 1, iwerte[i++] ) );
Aber einfach ausprobieren, wenn Du mir nicht glauben solltest ...
lg
Belgarath