#include <stdio.h>
int sum_pos(int* begin, int* end) {
int sum = 0;
while(begin < end) {
if (0x80000000 ^ (0x80000000 & *begin)) sum += *begin;
begin ++;
}
return sum;
}
int main(void) {
int array[] = {-2, 4, -10, 8};
printf("sum: %d\n", sum_pos
(array
, array
+ 4)); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgc3VtX3BvcyhpbnQqIGJlZ2luLCBpbnQqIGVuZCkgewoJaW50IHN1bSA9IDA7Cgl3aGlsZShiZWdpbiA8IGVuZCkgewoJCWlmICgweDgwMDAwMDAwIF4gKDB4ODAwMDAwMDAgJiAqYmVnaW4pKSBzdW0gKz0gKmJlZ2luOwoJCWJlZ2luICsrOwoJfQoJcmV0dXJuIHN1bTsKfQoKaW50IG1haW4odm9pZCkgewoJaW50IGFycmF5W10gPSB7LTIsIDQsIC0xMCwgOH07CglwcmludGYoInN1bTogJWRcbiIsIHN1bV9wb3MoYXJyYXksIGFycmF5ICsgNCkpOwoJcmV0dXJuIDA7Cn0K