You repeatedly forgot to take abs() on the .x difference terms (which presumable denote some kind of distance). I suggest you use a local variable to temporarily store that distance, so you don't have to rewrite the entire term so many times:
for (NC...) {
RRQLC=0;
for (RRC...) {
if (NC != RRC) {
auto node_dist = abs(node[NC].x - node[RRC].x);
Also, that second if condition doesn't appear to make sense:
if (node[NC].x-node[RRC].x < node[NC].RADIO_RANGE && node[NC].x-node[RRC].x > node[NC].RADIO_RANGE-(node[NC].RADIO_RANGE*2)) {
The right hand term calculates the difference from one term to twice the same term. I suspect you meant to reference two different terms here? (e. g. node[RRC].RADIO_RANGE rather than node[NC.RADIO_RANGE?)
I can't say what is wrong with the innermost if, because it is unclear what you expect. But I suggest if you just fix the above things first. May be it just works after that.