..e comunque, visto che HIGH=1 e LOW=0, e facciamo a gara di compattezza ;), direi che se i requisiti sono quelli indicati dall'OP si può fare così:
int flag = 0;
for(int i=0; i<=3; ++i)
flag = (flag|term[i])&!res[i];
if (flag) {
...
..e comunque, visto che HIGH=1 e LOW=0, e facciamo a gara di compattezza ;), direi che se i requisiti sono quelli indicati dall'OP si può fare così:
int flag = 0;
for(int i=0; i<=3; ++i)
flag = (flag|term[i])&!res[i];
if (flag) {
...