Função:void cria_lista(struct funcionarios *i, struct funcionarios **inicio, struct funcionarios **fim)
{
struct funcionarios *old, *p;
if(*fim==NULL) { //primeiro elemento da lista
i->prox = NULL;
i->ante = NULL;
*fim = i;
*inicio = i;
return;
}
p = *inicio; //começando no topo da lista...
old = NULL;
while(p) {
if((p->matricula, i->matricula)<0) { //<--- minha duvida esta aqui
old = p;
p = p->prox;
}
else {
if(p->ante) {
p->ante->prox =i;
i->prox = p;
i->ante = p->ante;
p->ante = i;
return;
}
i->prox = p; //novo primeiro elemento
i->ante = NULL;
p->ante = i;
*inicio = i;
return;
}
}
old->prox = i; //coloca no final
i->prox = NULL;
i->ante = old;
*fim = i;
}
Dúvidas:
if((p->matricula, i->matricula)<0) {
O que significa esse parentese com uma virgula
do tipo if( (a,b)<0 ) NUNCA vi isso hahahaha... oque significa esse (a,b) ?? e como é possivel (a,b) se transformar em um número único sem ser uma coordenada?
Fiz esse programa pra tentar entender, mas não consegui entender pq ele só mostra o valor de y em (x,y)
#include <stdio.h>
int main()
{
int a=2,b=2,c=1,d=3;
printf("a=2\nb=2\nc=1\nd=3");
printf("\n(a,b) = %d",(a,b));
printf("\n(a,c) = %d",(a,c));
printf("\n(a,d) = %d",(a,d));
printf("\n(c,d) = %d",(c,d));
printf("\n(c,a) = %d",(c,a));
printf("\n(d,a) = %d",(d,a));
printf("\n");
}
Saida do programa :
a=2
b=2
c=1
d=3
(a,b) = 2
(a,c) = 1
(a,d) = 3
(c,d) = 3
(c,a) = 2
(d,a) = 2
Bom sanando essa dúvida vou conseguir entender bem legal o programa
Valeu galera!!