Ok, tenho esse programa, ele ta rodando lindo, mais tem um problema ele deveria gravar dados de 4 departamentos e 6 funcionarios e quando pedido gerar relatorio com os dados do funcionario de acordo com o setor. Exemplo se setor 1 cabe 10 funcionarios a 2 reais hora, e setor 2, 20 funcionarios a 5 reais hora ( digitados pelo usuario, como ta no programa ), no final ele analisa o setor quantas horas extras e da o salario final do cara. Bem como falei ta rodando mais apenas para 1 funcionario e 1 setor, sempre que coloco um vetor da erro. Alguém poderia me ajudar a colocar um vetor funcional ?? segue codigo **************************************** #include<stdio.h> #include<stdlib.h> #include<string.h> /*****ESTRUTURA*****/ struct departamento { char nomed[30]; float maxhoras, valorhora; int codigo; }; typedef struct departamento tipodepartamento; struct funcionario { char nomef[30]; float bancohoras, horastrab; int codigo, codigodep; }; typedef struct funcionario tipofuncionario; /*****PROTÓTIPOS DAS FUNÇÕES*****/ float receber(float n1, float n2, float n3); /*****FUNÇÃO PRINCIPAL COM MENU*****/ int main() { int opc, i; float totalhorastrab, totalreceber, v1, v2; do { printf("Folha de Pagamento\n"); printf("\nPor favor digite a sua opcao\n\n"); printf("1 - Cadastrar Departamento\n"); printf("2 - Cadastrar Funcionario\n"); printf("3 - Folha de Pagamento por Funcionario\n"); printf("4 - Sair\n\n\nopcao:"); scanf("%d",&opc); system("cls"); /***** ESTRUTURA DE CONTROLE - MENU*****/ switch (opc) { case 1: tipodepartamento dep; printf("\nNome do setor: "); scanf("%s",&dep.nomed); printf("\nNumero Departamento: "); scanf("%d",&dep.codigo); printf("\nNumero maximo de horas: "); scanf("%d",&dep.maxhoras); printf("\nValor hora do funcionario: "); scanf("%f",&dep.valorhora); break; case 2: tipofuncionario func; printf("\nNome do Funcionario: "); scanf("%s",&func.nomef); printf("\nNumero do Funcionario: "); scanf("%d",&func.codigo); while(func.codigodep != dep.codigo) { printf("\nNumero do Departamento: "); scanf("%d",&func.codigodep); } printf("\nQuantidade de horas trabalhadas: "); scanf("%f",&func.horastrab); break; case 3: totalhorastrab=func.horastrab; totalreceber=receber(totalhorastrab,dep.maxhoras,dep.valorhora); printf("Dados do Funcionario\n\n Nome: %s\n Departamento: %d\n Horas trabalhadas: %4.0f horas\n Total a Receber: R$%6.2f\n\n", func.nomef, func.codigodep, totalhorastrab, totalreceber); break; case 4: printf("\nSAINDO...\n\n"); break; default: printf("\n\nOpcao invalida!!!\n\n"); break; } } while(opc !=4); } /*****Função Total a Receber*****/ float hextra; float receber (float n1, float n2, float n3) { if(n1<=n2) return n3*n1; else { hextra=n1-n2; return (((n1-hextra)*n3)+((n3*1.5)*hextra)); } } ****************************************************** vlw a ajuda 4.gif