2016-07-24 10 views
-5

Wenn ich dies in meinem Compiler ausführen bekomme ich 0044, könnte mir bitte jemand sagen, ob die Ausgabe, die ich bekomme, richtig ist?Wie lautet die Ausgabe für das folgende Codesegment in C?

Und was bedeutet dieses ganze Code-Segment?

int main() { 


    int X[10]={0}; 

    int N = 4; 

    int k ; 

    for(k = 0; k< N;k++){ 

    X[k] = k*2; 

    printf("%d" , X[N/2]); 

    } 
} 
+3

Sie fragen, was der Ausgang ist, aber dann sagen, dass der Ausgang "0044" ist. Dann fragst du, ob die Ausgabe stimmt - was meinst du mit "richtig"? Richtig oder falsch hängt davon ab, was das Programm tun soll, aber Sie sagen nicht, was das ist. Die Tour (http://stackoverflow.com/tour) ist einen Blick darauf wert, wie man gute Fragen stellt und sie auf eine Weise anspricht, die hier akzeptabel ist. –

+0

-1 Dies ist keine sehr gute Frage. Es fragt im Wesentlichen, ob Ihr C-Compiler ordnungsgemäß funktioniert. Sicherlich wird dieser Code "0044" eingeben (ohne Zeilenumbruch, so dass die Eingabeaufforderung direkt danach beginnt), aber es gibt keine Informationen in der Frage, warum Sie das Gefühl hatten, dass es sinnvoll ist, danach zu fragen. – MAP

Antwort

2

Ja ist die Antwort richtig. im Schritt int X[10]={0}; haben Sie alle Array-Elemente auf Null initialisiert. printf("%d" , X[N/2]); Hier wollten Sie X[2] drucken, also 0 bis k=2. Nach k=2 wird der Wert in 4 geändert. Und daher 0044.

+0

'Hier wollten Sie X [2]' ... ich denke, es muss stattdessen sein 'Hier wollten Sie X [N/2]' in Ihrer Antwort – Cherubim

+0

@CherubimAnand: aber N ist eine Konstante, so ist die Antwort richtig. –

Verwandte Themen