Jump to content
Fórum Script Brasil
  • 0

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


jhon27k

Question

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 to post
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Cloud Computing


  • Forum Statistics

    • Total Topics
      148880
    • Total Posts
      644927
×
×
  • Create New...