Ajuda para printar os pares

Estou terminando esse programa pra entregar hoje mas n estou conseguindo colocar a opção de imprimir os números pares da lista. alguem pode ajudar?

#include
#include

struct Fila {

int capacidade;
float *dados;
int primeiro;
int ultimo;
int nItens; 

};

void criarFila( struct Fila *f, int c ) {

f->capacidade = c;
f->dados = (float*) malloc (f->capacidade * sizeof(float));
f->primeiro = 0;
f->ultimo = -1;
f->nItens = 0; 

}

void inserir(struct Fila *f, int v) {

if(f->ultimo == f->capacidade-1)
	f->ultimo = -1;

f->ultimo++;
f->dados[f->ultimo] = v; // incrementa ultimo e insere
f->nItens++; // mais um item inserido

}

int remover( struct Fila *f ) { // pega o item do começo da fila

int temp = f->dados[f->primeiro++]; // pega o valor e incrementa o primeiro

if(f->primeiro == f->capacidade)
	f->primeiro = 0;

f->nItens--;  // um item retirado
return temp;

}

int estaVazia( struct Fila *f ) { // retorna verdadeiro se a fila está vazia

return (f->nItens==0);

}

int estaCheia( struct Fila *f ) { // retorna verdadeiro se a fila está cheia

return (f->nItens == f->capacidade);

}

void mostrarFila(struct Fila *f){

int cont, i;

for ( cont=0, i= f->primeiro; cont < f->nItens; cont++){

	printf("%.2f\t",f->dados[i++]);

	if (i == f->capacidade)
		i=0;

}
printf("\n\n");

}

int main () {

int opcao, capa;
float valor;
struct Fila umaFila;

// cria a fila
printf("\nCapacidade da fila? ");
scanf("%d",&capa);
criarFila(&umaFila, capa);

// apresenta menu
while( 1 ){
    
	printf("\n1 - Inserir elemento\n2 - Remover elemento\n3 - Mostrar Fila\n0 - Sair\n\nOpcao? ");
	scanf("%d", &opcao);

	switch(opcao){

		case 0: exit(0);

		case 1: // insere elemento
			if (estaCheia(&umaFila)){

				printf("\nFila Cheia!!!\n\n");

			}
			else {

				printf("\nValor do elemento a ser inserido? ");
				scanf("%f", &valor);
				inserir(&umaFila,valor);

			}

			break;

		case 2: // remove elemento
			if (estaVazia(&umaFila)){

				printf("\nFila vazia!!!\n\n");

			}
			else {

				valor = remover(&umaFila);
				printf("\n%1f removido com sucesso\n\n", valor) ; 

			}
			break;

			case 3: // mostrar fila
				if (estaVazia(&umaFila)){

					printf("\nFila vazia!!!\n\n");
}
				else {

					printf("\nConteudo da fila => ");
					mostrarFila(&umaFila);

				}
				break;

			default:
				printf("\nOpcao Invalida\n\n");

	}
}

}

using namespace std;

Tudo que você tem até agora está funcionando?
Se for o caso para mostrar apenas pares, você só precisa repetir tudo que fez na função mostrarFila, com a diferença antes de mostrar o dado verificar se é par ou impar.

Algo do tipo:

float dado = f->dados[i++];
if (dado % 2 == 0) {
  printf("%.2f\t",);
}

Porém note que a lista é do tipo float. Não sei como o operador % se comporta nesse caso. E nem sei se faz sentido considerar se números float são pares ou impares, geralmente isso é considerado para inteiros.