2016-06-06 18 views
-8

Wenn ich den C-Code kompiliert und ausgeführt werden unten dargestellt, erzeugt er folgendes:Bitte erläutern Sie den folgenden C-Code?

Eingang:

#include <stdio.h> 

int main() 
{ 
    int i, j; 
    int a, b; 

    for (j = 0; j <= 4; j+=2) 
    { 
     a = j; 
     b = 0; 

     for (i = 0; i <= 4; i++) 
     { 
      b += 2 * a * i; 
     } 

     printf("%d %d\n", a, b); 
    } 

} 

Ausgang:

0 0 

2 40 

4 80 

Wenn jemand kann mir sagen, warum die folgende Eingabe erzeugt die obige Ausgabe würde dies sehr geschätzt werden.

+2

Welchen Teil, speziell, verstehst du nicht? – Paulw11

+1

Was verstehst du nicht? Siehe auch [fragen]. – Evert

+1

Mit welcher Sprache kennen Sie sich aus, so dass jemand mit einem entsprechenden Hintergrund erklären kann? – mouviciel

Antwort

0

Ich hoffe, Sie verstehen es mit der einfachen Trace-Tabelle, die ich zeichne.

enter image description here

0

Dies scheint ein grundlegendes C-Beispiel zu sein, das arithmetische und printf Anweisungen zeigt.

Es hilft, wenn man ein Problem wie dieses in Module zerlegen:

1) Führen Sie die Schritte 2a und 2b mit j = 0, 2, 4, nacheinander:

for (j = 0; j <= 4; j+=2) 

2a) Für jeden Index von j, b = b + 2 * j * i (a = j hier)

for (i = 0; i <= 4; i++) 
{ 
    b += 2 * a * i; 
} 

2b) printf("%d %d\n", a, b) druckt nur die Werte von j out (da a den Wert von j zugewiesen ist), und b, wo die Berechnungen in Schritt 2a durchgeführt werden.

Das nächste Mal versuchen, den genauen Bereich zu geben, wo Sie verwirrt sind. So etwas im Chat zu erklären, ist nicht einfach. Sie müssen es wirklich auf eigene Faust brechen.

Verwandte Themen