Ir ao conteúdo
  • Cadastre-se
jpaulofsa

C Maior salário entre funcionários cadastrados

Recommended Posts

#include <stdio.h>
#include <stdlib.h>

struct funcionario{   //struct que cria o tipo char para nome e float para salário
	char nome[50];    //nome funcionario
	float salario;    //salário funcionário
};

typedef struct funcionario funcionario_t;  //typedef nomeia a struct funcionario para funcionario_t

void cadastra_funcionario(funcionario_t lista_funcionario[], int tamanho_lista)
{
	funcionario_t novo_funcionario;
	tamanho_lista = 0;
	printf("Digite nome do funcionario: \n");
	scanf("\n%s", novo_funcionario.nome);
	printf("Digite salario do funcionario \n");
	scanf("\n%f", &novo_funcionario.salario);
	lista_funcionario[tamanho_lista] = novo_funcionario;
	tamanho_lista++;
}


funcionario_t maior_salario(funcionario_t lista_funcionario[], int tamanho_lista){   //funcao para maior salario
	if (tamanho_lista > 0) {
					int i, maior_indice;
					float maior_salario = 0;
					for (i = 0; i < tamanho_lista; i++) {
						if (lista_funcionario[i].salario > maior_salario) {
					maior_salario = lista_funcionario[i].salario;
					maior_indice = i;
				}
			printf("Nome funcionario: %s\n", lista_funcionario[maior_indice]);
			printf("Maior salario funcionario: %f\n", maior_salario);
			}
	}
}
	
int main(void){         //função main, chama as funcões acima
	funcionario_t lista_funcionario[50];
	int tamanho_lista = 0;
	int continuar = 1;
	char opcao;
	do{
		printf("===================================\n");  //insere uma "barra"
		printf(" Digite 1 para cadastrar: \n Digite 2 para maior salario:\n Digite 0 para sair:\n ==> ");  //mostra "menu" em números para evitar case sensitive se houver.
		scanf("\n\n%c", &opcao);
		
		switch(opcao){
			case '1':
                cadastra_funcionario(lista_funcionario, tamanho_lista);  //chama funcao cadastra_funcionario
				tamanho_lista++;
				break;
			
			case '2':
				maior_salario(lista_funcionario, tamanho_lista);  //chama funcao maior_salario
				break;
			
			case '0':
				continuar = 0;
			
			default:    // em caso de não informar nenhum numero encerra o programa
				continuar = 0;
			}
	} 
	
	while (continuar == 1);{          //continuar a execução do do
	
	
	getchar();
	return 0;
    }
}

Boa tarde! estou tentando desenvolver este programa que tem que ter além da função main, as funções voidcadastra_funcionario e funcionario_tmaior_salario...o ojetivo é que o programa receba os dados dos funcionários e ao solicitar informações sobre o funcionário de maior salário, retorne o Nome e o maior salário...acontece que o printf retorna o nome e o maior salário, de fato, do funcionário, mas a quantidade de vezes do número de funcionários cadastrados...alguém poderia ajudar!?

Compartilhar este post


Link para o post
Compartilhar em outros sites
funcionario_t maior_salario( funcionario_t lista_funcionario[], 
                                       int tamanho_lista){   //funcao para maior salario
	if (tamanho_lista > 0) {
          int i, maior_indice;
          float maior_salario = 0;
					
            for (i = 0; i < tamanho_lista; i++) {
              if (lista_funcionario[i].salario > maior_salario) {
                    maior_salario = lista_funcionario[i].salario;
                    maior_indice = i; }}
      
      printf("Nome funcionario: %s\n", lista_funcionario[maior_indice]);
      printf("Maior salario funcionario: %f\n", maior_salario);	
    }
}

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×