O programa é uma Lista simplesmente encadeada do qual possui as funções básicas de inclusao, exclusao consulta e alteracao, daí eu preciso tb de funcao que liste os funcionarios e os dados, a contagem deles, a média de seus salários e o maior dos salários, JÁ FIZ TUDO, só que quando é na hora de mostrar tudo relacionado a salario sai um numero maluco, e na hora de mostrar a quantidade de funcionarios também está assim... Agradeço a quem tiver paciência de ler e mais ainda quem puder me ajudar! um abraço! Obs. eu postei essa mesma pergunta em outro forum, não sei se isso gera problemas, caso aconteça peço que delete imediatamente o meu tópico #include <stdlib.h> #include <string.h> #include <iomanip.h> // Tipo de cada elemento da LSE struct LSE{ int m; char n[200]; float s; struct LSE *prox; }*pra mim, *ult, *aux; // Assinaturas das funções void inclusao(int m, char s[100],float s); void consulta(int m); void alteracao(int m); void exclusao(int m); void ListarFunc(); int ContarFunc(); float MediaSalarios(); void FuncionarioMaiorSalario(); main() { int op=0, m,cont; float s,med,mai; char n[200]; pra mim=ult=NULL; while(op!=9){ m=0; cout<<"1-Inclusao\n"; cout<<"2-Consulta\n"; cout<<"3-Alteracao\n"; cout<<"4-Exclusao\n"; cout<<"5-Listar Funcionarios\n"; cout<<"6-Contagem de Funcionarios\n"; cout<<"7-Media de Salario\n"; cout<<"8-Maior Salario\n"; cin >> op;fflush(stdin); if(op==1){ cout<<"Entre com a matricula:"; cin>>m;fflush(stdin); cout<<"Entre com o nome:"; gets(n); fflush(stdin); cout<<"Entre com o salario:"; cin>>s;fflush(stdin); inclusao(m,n,s); cout<<endl; } else if(op==2){ cout<<"Entre com o codigo para a colsulta:\n"; cin>>m; fflush(stdin); consulta(m); } else if(op==3){ cout<<"Entre com o codigo para a Alteracao:\n"; cin>>m; fflush(stdin); alteracao(m); } else if(op==4){ cout<<"Entre com o codigo para a exclusao:\n"; cin>>m; fflush(stdin); exclusao(m); } else if(op==5){ fflush(stdin); ListarFunc(); } else if(op==6){ fflush(stdin); ContarFunc(); cout<<"lista de funcionarios:"<<cont<<endl; } else if(op==7){ fflush(stdin); MediaSalarios(); cout<<"Media de salarios:"<<med<<endl; } else if(op==8){ FuncionarioMaiorSalario(); cout<<"maior salario: "<<mai<<endl; } } } // Função de Inclusão void inclusao(int m, char n[],float s) { aux = (struct LSE *) malloc(sizeof(struct LSE)); if(!pra mim) pra mim=aux; else ult->prox=aux; ult=aux; ult->m=m; strcpy(ult->n,n); ult->prox=NULL; cout<<"Inclusao realizada!\n"; } // Função de Consulta void consulta(int m) { int achei = 0; aux=pra mim; while(aux && !achei){ if(aux->m==m){ achei=1; cout<<"Descricao:"<<aux->n<<"\n"; } else aux=aux->prox; } if(!achei) cout<<"Codigo inexistente!\n"; } // Função de Alteração void alteracao(int m) { int achei = 0; aux=pra mim; while(aux && !achei){ if(aux->m==m){ achei=1; cout<<"Descricao atual:"<<aux->n<<"\n"; cout<<"Entre com a nova descricao:"; gets(aux->n); cout<<"Alteracao realizada!\n"; } else aux=aux->prox; } if(!achei) cout<<"Codigo inexistente!\n"; } // Função de Exclusão void exclusao(int m) { int achei = 0; aux=pra mim; struct LSE *aux2; while(aux && !achei){ if(aux->m==m){ if(aux==pra mim){ if(aux==ult) pra mim=ult=NULL; //CASO 1 else pra mim=prim->prox; //CASO 2 } else if(aux==ult){ //CASO 3 ult=aux2; ult->prox=NULL; } else aux2->prox = aux->prox; //CASO 4 achei=1; free(aux); cout<<"Exclusao realizada!\n"; } else { aux2=aux; aux=aux->prox; } } if(!achei) cout<<"Codigo inexistente!\n"; } //Função Listar funcionarios void ListarFunc() { aux = pra mim; while(aux) // o mesmo que while(aux!=NULL) { cout << "Matricula: "<< aux->m << "\n"; cout << "Nome: "<< aux->n << "\n"; cout << "Salario: "<< aux->s<<fixed << "\n"<<endl; aux = aux->prox; } } //Função Contagem de funcionarios int ContarFunc() { int m=0; aux = pra mim; while(aux) // o mesmo que while(aux!=NULL) { m++; aux = aux->prox; } return(m); } //Função Média de salarios float MediaSalarios() { int m=0; float s=0; aux = pra mim; while(aux) // o mesmo que while(aux!=NULL) { m++; s+=aux->s; aux = aux->prox; } if(m>0) return(s/m); else return(-1); } //funcao Maior salario void FuncionarioMaiorSalario() { int primeiro=1; float maior; char n[200]; aux = pra mim; while(aux) // o mesmo que while(aux!=NULL) { if(primeiro) // o mesmo que if(primeiro==1) { maior=aux->s; strcpy(n, aux->n); primeiro =0; } else if(aux->s>maior) { maior=aux->s; strcpy(n, aux->n); } aux = aux->prox; } cout << "Funcionario de maior salário:"<<n; }