2016-07-24 8 views
-5

Когда я запускаю это в своем компиляторе, я получаю 0044, может кто-нибудь, пожалуйста, скажите, правильно ли получается результат?Каков результат для следующего сегмента кода в C?

А что означает весь этот сегмент кода?

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

Вы спрашиваете, что такое выход, но затем скажите, что выход «0044». Затем вы спрашиваете, правильна ли выходка - что вы подразумеваете под «правильным»? Правильное или неправильное зависит от того, что должна делать программа, но вы не говорите, что это такое. Тур (http://stackoverflow.com/tour) стоит посмотреть, как задавать хорошие вопросы и спрашивать их так, как это приемлемо здесь. –

+0

-1 Это не очень хороший вопрос. Он по существу спрашивает, правильно ли работает ваш компилятор C. Конечно, этот фрагмент кода наберет «0044» (без новой строки, поэтому сразу после этого начнется ваше приглашение), но нет никакой информации в вопросе о том, почему вы считали, что это была полезная вещь. – MAP

ответ

2

Да, ответ правильный. на этапе int X[10]={0}; вы инициализировали все элементы массива равными нулю. printf("%d" , X[N/2]); Здесь вы хотели бы напечатать X[2], который является 0 до k=2. После k=2 его значение изменяется на 4. И, следовательно, 0044.

+0

'Здесь вы хотели бы напечатать X [2]' ... я думаю, что вместо этого он должен быть 'Здесь вы хотели напечатать X [N/2]' в своем ответе – Cherubim

+0

@CherubimAnand: но N является константой, поэтому ответ верный. –

Смежные вопросы