Ir ao conteúdo

Posts recomendados

Postado
#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!?

Postado
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

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 comunidades 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

×
×
  • Criar novo...