Ir para conteúdo
Fórum Script Brasil
  • 0

lista ordenada em c para cadastro de funcionarios(nome e salario) e order por salario


jhon27k

Pergunta

boa tarde,

 

alguém poderia me ajudar em um exercício.?

1.      Faça um programa que cadastre funcionários. Para cada funcionário dever ser cadastrados nome e salário. Os dados devem ser armazenados em uma lista dinâmica simplesmente encadeada e ordenada, de forma decrescente, pelo salário do funcionário. Posteriormente, o programa deve mostrar:

 

 

a)    Cadastrar nome e salário;

b)    Listar todos os funcionários desordenados;

c)     Listar todos os funcionários ordenados;

d)    O nome do funcionário que tem o maior salário (em caso de empate mostrar todos);

e)    A média salarial de todos os funcionários juntos;

f)      A quantidade de funcionários com salário superior a um valor fornecido pelo usuário. Caso nenhum funcionário satisfaça essa condição, mostra mensagem.

 

Construa um programa onde o usuário entre com 20 valores que deverão ser armazenados em uma pilha. Feito isso, o programa deverá apresentar os seguintes resultados: somatório de todos os valores ímpares, somatório de todos os valores pares, somatório de todos os valores que estão nas posições impares da pilha, somatório de todos os valores que estão nas posições pares.2.     

 

 

comecei assim,

 

 

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

typedef struct funcionario{
    float salario; //chave
    char nome[35];
    struct funcionario *prox;
}funcionario;


funcionario* cria(float salario){
    funcionario *novo;
    novo = (funcionario*) malloc(sizeof(funcionario));
    novo->salario = salario;
    novo->prox = NULL;

    return novo;    
}

funcionario *inserir(funcionario *cabeca, float salario)
{
    funcionario *novo = NULL, *atual = NULL, *anterior = NULL;
    novo = cria(salario);
    if(novo!=NULL)
    {
        for(atual = cabeca; atual != NULL && (atual->salario < salario); atual = atual->prox)
        {
              anterior = atual;
        }    
    
        if(!anterior)
        { //se for nulo insere no inicio da fila
        novo->prox = cabeca;
        cabeca = novo;
                
        }
        else
        {
        novo->prox = anterior->prox;
        anterior->prox = novo;
        }
        
    }
    else
    {
        printf("erro de alocacao");
    }
    
    return cabeca;
    
}
    


int main (){
    
    
}

 

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...