/* Acquisizione copie relazione binaria */
void rel_bin(char *mess_1, /* IN: messaggio variabile */
int num_elem, /* IN: numero elementi insieme X */
int *array, /* IN: insieme X */
int ind /* IN: indice scorrimento insieme X */
int *rel_bin) /* OUT: array per le coppie della relazione */
{
/*Dichiarazione variabile locali */
int num_rel, /* IN: numero di coppie della relazione */
char sep; /* IN: separatore fra i due valori */
int esito_lett, /* LAV: controllo variabile input */
ind_2, /* LAV: indice scorrimento array relazione */
num_copia; /* LAV: numero della coppia */
/* Acquisizione numero delle coppie */
do
{
printf("Digitare il numero di coppie da assegnare alla %s,",
mess_1);
printf("ricordandosi che deve essere <= di %d: ",
num_elem * num_elem);
esito_lett = scanf("%d",
&num_rel);
if (esito_lett != 1 || num_rel < 0 || num_rel > num_elem * num_elem)
printf("Valore non accettabile!\n");
while (getchar () != '\n');
}
while (esito_lett != 1 || num_rel <0 || num_rel > num_elem * num_elem);
array = (int *)calloc(num_rel,
sizeof(int));
/* Acquisizione valori delle coppie */
for (ind_2 = 0,
num_copia = 1;
(ind_2 <= num_rel * 2 - 2 );
ind_2 + 2,
num_copia++)
{
do
{
printf("Digitare la %d° copia nel formato x,y: ",
num_copia);
esito_lett = scanf("%d %c %d",
&rel_bin[ind_2],
&sep,
&rel_bin[ind_2 + 1]);
if (esito_lett != 3 || rel_bin[ind_2] < 0 || rel_bin[ind_2 + 1] < 0 || sep != ',')
printf("Coppia non accettabile!\n");
Questo è il codice fino adesso, la funzione chiede all'utente le coppie che compongono una relazione binaria.
Il mio problema e come impostare un ciclo che verifichi che i valori x,y che compongono ogni coppia appartengono all'insieme X definito precedentemente.