Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
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

@AnsiC Obrigado! O erro era o uso de uma } dá nem pra creditar rsrsrs. muito obrigado.

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






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

×