Arte no sistema Postado Março 20, 2009 Denunciar Share Postado Março 20, 2009 (editado) :ninja: Tenho um probleminha com essa continuação pois o problem deve comparar 5 func e retornar em ordem alfabetica;cod; for (x=1; x <= 5;x++) { cont=0 if(strcmp(funcinario[x].nome,funcionario[x+1].nome) < 0) cont=cont++; não cosigo continuar esse codigo voces pode ajudar? o que faço pra listar os 5 funcionarios por ordem alfabetica... Editado Março 20, 2009 por Arte no sistema Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rommel Postado Março 20, 2009 Denunciar Share Postado Março 20, 2009 (editado) Supondo que os nomes dos funcionários estariam armazenado em um vetor de string, eu faria assim:string lista [5] = {"nome1","nome2","nome3","nome4","nome5"}; for (int i = 0; i < 4; i++) { for (int j = i+1; j < 5; j++) { if ( lista[i] > lista[j] ) { string x = lista [i]; lista [i] = lista[j]; lista [j] = x; } } }Depois é só imprimir o vetor. Editado Março 20, 2009 por Rommel Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 w0lv3r1n3 Postado Março 20, 2009 Denunciar Share Postado Março 20, 2009 Desculpe a falta de tempo para comentar ela corretamente e detalhar, mas é que estou no trabalho e meio enrolado!Qualquer coisa é só postar a duvida#include <cstdlib> #include <iostream> #include <list> //List da biblioteca da STL using namespace std; //Estrutura de Funcionario struct Funcionario { char szNome[50]; int iCodigo; }; //Funcao usada para a ordenacao bool CompareNome(const Funcionario* a, const Funcionario* b) { for(int i = 0; i < strcmp(a->szNome, b->szNome)?strlen(b->szNome):strlen(a->szNome); i++) { if(a->szNome[i] < b->szNome[i]) return true; if(a->szNome[i] > b->szNome[i]) return false; } } int main(int argc, char *argv[]) { //Inicializacao da Lista list<Funcionario*> *liFunc = new list<Funcionario*>; //Insercao de nomes aleatorios for(int i = 0; i < 10; i++) { Funcionario *NovoFunc = (Funcionario*)malloc(sizeof(Funcionario)); strcpy(NovoFunc->szNome, ""); for(int j = 0; j < rand()%50+1; j++) sprintf(NovoFunc->szNome, "%s%c", NovoFunc->szNome, rand()%23+65); NovoFunc->iCodigo = i; liFunc->push_front(NovoFunc); } //Ordenacao liFunc->sort(CompareNome); //Exibicao da lista ordenada for(int i = 0; i < 10; i++) { cout << liFunc->front()->szNome << endl; liFunc->pop_front(); } system("PAUSE"); return EXIT_SUCCESS; }Abrass Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Arte no sistema
:ninja:
Tenho um probleminha com essa continuação pois o problem deve comparar 5 func e retornar em ordem alfabetica;
cod;
for (x=1; x <= 5;x++)
{
cont=0
if(strcmp(funcinario[x].nome,funcionario[x+1].nome) < 0)
cont=cont++;
não cosigo continuar esse codigo voces pode ajudar? o que faço pra listar os 5 funcionarios por ordem alfabetica...
Editado por Arte no sistemaLink para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
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.