[Algoritmo] Mutua esclusione multipla. Non ci riesco...

BaBBuino:
Il primo della serie aveva solo un AND, l'ultimo aveva una sequenza di 20 o 30 AND di tutti i contatti precedenti. Un'orrore!

  if ((PRI_10 == 0) && (PRI_11 == 0) && (PRI_12 == 0) && (PRI_13 == 0) && (PRI_14 == 0) && (PRI_15 == 0) && (PRI_16 == 0) && (PRI_17 == 0) && (PRI_18 == 0) && (PRI_19 == 0)

&& (PRI_20 == 0) && (PRI_26 == 0) && (PRI_27 == 0) && (PRI_28 == 0) && (PRI_29 == 0)) {

Con vettore PRI di tot elementi

int PRI[50];      // indice da 0 a 49,   non sò quanti te ne servono

Il tuo PRI_10 diventa PRI[10]
Ma ora con un ciclo for spazzoli tutti i PRI perchè raggruppati sotto forma di vettore
Suppongo tu voglia una funzione che verifica se da posizione1 (10) a posizione2 (29) se sono tutti a zero e ritorna vero se lo sono.
Da usare così (esempio che sostituisce i tui if del tuo codice precedente):

if( ChkAllZero( PRI, 10, 29 ) ) {  // vero se da elemento 10 a 29 del vettore PRI sono tutti a 0
int ChkAllZero(int vet[],byte from,byte to)
{ int ret=1;  // presumo tutti a zero, quindi vero
  for(int i=from; i<=to;i++)
  { if( vet[i]!=0)        
     { ret=0;  // false  perchè ne ho trovato uno <>0 
       i=to+1; // forzo uscita da for inutile proseguire
     }
  }
  return(ret);
}