Ich denke, ich werde verrückt. Ich lerne C-Vorprozessor und ich kann dieses Problem nicht herausfinden, I definiert SQR (X) (X * X) absichtlich ohne KlammernC-Präprozessor #define SQR (x) (x * x)
#include <stdio.h>
#define SQR(x) (x * x)
int main()
{
int counter; /* counter for loop */
for(counter = 0; counter < 5; ++counter)
{
printf("x %d, x squared %d\n",counter+1, SQR(counter+1))
}
return (0);
}
in einem Moment in Schleifenzähler = 3. Dann sollte es sein 3 + 1 * 3 + 1 und das ist gleich 7, aber die Ausgabe sagt 5. Hier Ausgabe des Codes oben:
x 1, x squared 1
x 2, x squared 3
x 3, x squared 5
x 4, x squared 7
x 5, x squared 9
Process returned 0 (0x0) execution time : 0.020 s
Press any key to continue.
ich eindeutig etwas fehlt bin, aber ich kann es nicht verstehen aus.
Sie haben richtig, es ist 7. Sie drucken Zähler mit einem hinzugefügt, so dass Ihre Antworten nicht übereinstimmen. – LogicG8
Wenn Sie 'x 3' drucken, ist' counter' '2'. – user2357112
Ja, aber der Druck sagt deutlich: "x 3, x quadriert 5" so im Einsatz vergleichen + 1 zu drucken und dann +1 zu calc. Gleicher Wert – honeyPot