Она што кодот го прави, внесуваш број преку конзола(scanf("%d", &curr)), прави бројач, во твојот случај 'x' и континуирано ја извршува лупата се додека во конзолата не се внесе нешто што не е број.
Понатаму, сумата ја прави да биде еднаква на збирот од сегашниот број и од претходниот број, на пример сегашен број = 8, претходен број = 7, и на сумата и ја додава вредноста: сума = 7 + 8, во кој случај сумата ќе биде: сума = 15;
Потоа, наредниот if, "if (!(sum % 2))", ако сумата нема остаток од 0, или поточно, како што ти се вели во прашањето, ако сумата не е парна, тогаш скокни го овој if statement и сетирај го сегашниот број да биде претходен, зголеми го бројачот за едно и внеси го новиот сегашен број.
Лупата ќе ти се извршува се додека не внесеш карактер, стринг или некој друг знак што не е број така што, кога ќе внесеш друг знак, ќе ти се испечати колку пати бил зголемен бројачот 'k'.