Criar um struct em C

Fala galera blz? Professor da facul passou um exercício para fazer um struct e com um vetor de struct cadastrar N funcionários.A minha dúvida é como criar um vetor float de um determinado struct.Se coloco float antes de funcionario f[n]dá erro.
Aí está parte do meu código.Agradeço desde já.

    #include <stdio.h>
typedef struct dados{ //struct dados
	int cod;
	float sal;
	float hor_trab;
} funcionario; //do tipo funcionario
main(){
	int i,n;
	do{
		printf("Quantos funcionarios?");
		scanf("%d",&n);
	}while(n<=0);
	 funcionario f[n]; //vetor de struct funcionario(quero este vetor de tipo float)

Você não precisa declarar float na frente do vetor, basta acessar seus membros para preencher o valor através do ponto…

int i,n;

printf("Quantos funcionarios?");
scanf("%d",&n);

funcionario f[n];

for (i = 0; i < n; i++) {
    printf("Código do func. %d: ", i+1);
    scanf("%d", &f[i].cod);

    printf("Salário do func. %d: ", i+1);
    scanf("%f", &f[i].sal);

    printf("Hr Trab do func. %d: ", i+1);
    scanf("%f", &f[i].hr_trab);
}

Entendi,valeu!