2011-02-08 4 views
-3
int array[2][2] = {0, 1, 2, 3}; 
int i; 
int sum = 0; 

for (i =0; i < 4; ++i) 
{ 

    int x, y; 

    x = i % 2; 

    if (x) 
    { 
     y = 0; 
     } 
    else 
    { 
     y = 1; 
     } 
    sum += array[x][y]; 
} 

printf("%d\n", sum); 
+7

№ Не могу это объяснить. Что вы ** думаете, что это может сделать? Вы можете обновить свой вопрос ** ** своим пониманием. Мы могли бы прокомментировать это. –

+1

Ваши первые мысли? Добавьте их к своему вопросу, чтобы люди знали, с чего начать помогать вам. –

+1

Запустите его и распечатайте значения 'i',' x', 'y' и' sum' для каждой итерации в цикле? – bjornars

ответ

4

Это достаточно короткий, чтобы вы могли пройти через него самостоятельно (так как это домашнее задание) и запустить каждую линию самостоятельно на бумаге. Если есть какая-то строка, которую вы не можете понять, задайте более конкретный вопрос. Просто используйте карандаш, создайте окно, чтобы показать значения x, y, i, sum и всех 4 элементов массива. Затем пройдите через изменение значений в этих блоках, когда вы исследуете строки кода, и вы точно увидите, что происходит. Одна вещь, которую вы должны знать, это то, что «если (x)» будет обрабатывать x как истинное, когда оно равно 1.

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