#include #include # define MAX 5 int fila01[MAX]; int fila02[MAX]; int indArmaz01 = 1; int indArmaz02 = 1; int indRecup01 = 1; int indRecup02 = 1; void Inserir(int valor){ if((MAX+indRecup01-indArmaz01)%MAX !=1){ fila01[indArmaz01] = valor; indArmaz01 = (indArmaz01+1)%MAX; return; } else { printf("Fila Cheia!! \n"); } } int Remover01(void){ int recup = 0; if(indArmaz01!=indRecup01){ recup = fila01[indRecup01]; indRecup01 = (indRecup01+1)%MAX; } else { printf("Fila Vazia"); return -1; } return recup; } void Listar01(void){ int vl = Remover01(); printf("%d\t",vl); getch(); } int Remover02(void){ int recup = 0; if(indArmaz02!=indRecup02){ recup = fila02[indRecup02]; indRecup02 = (indRecup02+1)%MAX; } else { printf("Fila Vazia \n"); return -1; } return recup; } void Listar02(void){ int vl = Remover02(); printf("%d\t",vl); getch(); } void Preferencial(void) { for(int i = 1; i < MAX; i++) { if(fila01[i] > 60) { int j = i; fila02[indArmaz02] = fila01[i]; indArmaz02++; while(j < MAX) { // Esse if não precisa. // if(fila01[j+1] != 0) // { fila01[j] = fila01[j+1]; // i--; tira isso daqui e coloca do lado de fora! j++; // } // else // { // fila01[j] = fila01[j+1]; // j++; // } } i--; // Se ele achou alguem na posicao i e copiou o elemento i+1 para i, essa posicao deve ser verificada novamente! indArmaz01--; } } } int main (void) { Inserir(5); Inserir(4); Inserir(71); Inserir(63); Preferencial(); Listar01(); Listar01(); Listar01(); Listar01(); Listar02(); Listar02(); Listar02(); Listar02(); getch(); }