eMineiro 0 Denunciar post Postado Novembro 15, 2007 E ai galera , estou fazendo um trabalho em C e to com dificuldade de pegar a matriz com strings(TODAS COM CHARS MAISCULOS) e ordena-las alfabeticamente, alguem pode me ajudar?? De preferencia sem usar ponteiros ... vlw exemplo.: m = [['A','S','A'],['Q','U','E','I','J','O'],['A','M','O','R']] ficaria m = [['A','M','O','R']['A','S','A'],['Q','U','E','I','J','O']] pllzz me ajudem Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Novembro 15, 2007 A idéia é: Pegue a primeira letra de cada string e as compare com números mesmo. Ex: Teste isso: if ('A' < 'B') printf("A eh menor que B"); else printf("B eh maior que A"); Na tabela ASCII B é maior que A e C é maior que B, assim por diante. Pense nisso e tente resolver seu problema. Compartilhar este post Link para o post Compartilhar em outros sites
eMineiro 0 Denunciar post Postado Novembro 15, 2007 Eu fiz uma função para comparar 2 strings veja soh: int CompararString(char string1[TAM], char string2[TAM]){ int i,x,y,menor; x = strlen(string1); y = strlen(string2); i = 0; if (x < y){ menor = x; }else{ menor = y; } while (i < (menor)){ if (string1[i]<string2[i]){ return 1; } if (string2[i]<string1[i]){ return 0; } i = i++; } // No caso de palavras como Amor e Amora , faz o seguinte: if (menor == x){ return 1; }else{ return 0; } } No caso ela vai pegar 2 strings e comparar letra por letra , exemplo palavras Amor e Amora Vai comparar 4 vezes --> A com A , M com M , O com O , R com R e vai sair do while , saindo do while a função ve qual palavra tem tamanho menor. Retorna 1 a string1 for a menor de ordem alfabetica e 0 se a string2 for a menor de ordem alfabetica. Só que parece que ele nao ta conseguindo comparar os chars das strings , ta certo isso ai que eu fiz?? Compartilhar este post Link para o post Compartilhar em outros sites
eMineiro 0 Denunciar post Postado Novembro 15, 2007 PROBLEMA RESOLVIDO, o problema mesmo era VISAO aheuaheaue eu coloquei 1 ao inves de i nessa linha de código if (string2[i]<string1[1]){ Sendo que na verdade eh pra ser assim if (string2[i]<string1[i]){ Ja esta editado ali em cima Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Novembro 15, 2007 Que ótimo que conseguiu. http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif Compartilhar este post Link para o post Compartilhar em outros sites