|
![]() |
||
Algoritmo de ordenação em C
|
||
. Nós temos 754.091 usuários, convidamos você fazer parte de nossa comunidade também! Se ainda não encontrou o que procura use nossa pesquisa. Esperamos que aprecie nosso trabalho.
![]() |
|
|
Opções do Tópico |
|
|
#1 (permalink) |
|
Membro Senior
|
Bom-dia!
Mais uma vez abusando do ensinamento de vocês estou com um exercicio de ordenação fiz o código, mas estou com uma duvida:O exercicio pede-se que entre com 5 nomes diferentes e faça um algoritmo de ordenação: Código:
Mais uma vez grato!!!
__________________
Slackware 12 / Rwindows XP / Kurumin 7.0 Kernel:2.6.22.1 "Viver apenas um dia e ouvir um bom ensinamento é melhor do que viver um século sem conhecer tal ensinamento." Buda. |
|
|
|
|
|
#2 (permalink) |
|
Veterano
Registrado em: Jan 2007
Localização: Sampa
Mensagens: 1.269
Reputação: 30
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Tô enferrujadissimo em C e nunca fui muito longe, mas vou PALPITAR.
char nome[5] normalmente significa que você está criando uma váriavel nome que pode ter 4 letras. Porque? Em C o conceito de string é: "um vetor terminado por \0" pra armazenar jofre em um vetor declarado: char nome[10] teriamos por exemplo nome[0]='j' nome[1]='o' nome[2]='f' nome[3]='r' nome[4]='e' nome[5]='\0' nome[6]='w' nome[7]='x' nome[8]='y' nome[9]='z' Por isso você precisaria usar um vetor declarado como char nomes[5][10]. e outro char x[10] No mais ACHO que seu programa ordenaria bonitinho 5 letras desde que não misturassemos maiusculas com minusculas.
__________________
Melhore o futuro do fórum: Diga se a dica funcionou ou conte-nos como conseguiu resolver a sua dúvida! Se eu errar ou for pouco claro, reclame! Quando possivel eu tentarei melhorar. |
|
|
|
|
|
#3 (permalink) |
|
Membro Senior
|
primeiro, pra ler uma string, eh scanf("%s",nome[i]), sem o &.
segundo, vc nao incrementou o j, soh inicializou. nao sei se tem mais erros, nao analizei mto bem o codigo... espero ter ajudado t+ |
|
|
|
|
|
#4 (permalink) |
|
Ubbergeek
|
a comparação nome[i] > nome[j] não irá funcionar tb.
para fazer uma comparação de strings em use a função strcmp(string1, string2) que lhe retorna um valor positivo, negativo ou zero de acordo com a comparação feita...
__________________
Casa:MS Windows Seven (empolgando) Trampo: MS Windows Seven (desapontando) Quer um Fórum exclusivamente sobre Open Source? Aqui: www.linuxbsd.com.br/forum |
|
|
|
|
|
#5 (permalink) |
|
Veterano
Registrado em: Jan 2007
Localização: Sampa
Mensagens: 1.269
Reputação: 30
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Vou ser chato e xereta só pra ver se ainda me lembro de alguma coisa. Podem reclamar se for besteira minha.
nome[i] > nome[j] Vai funcionar se não houver mistura entre maiusculas e minusculas, isso por que ele vai comparar os códigos ASCII da letra nome[i] com o da nome[j], como as maiusculas estão ordenadas (entre 65 e 90) e as minusculas tambem (97 a 122) ...
__________________
Melhore o futuro do fórum: Diga se a dica funcionou ou conte-nos como conseguiu resolver a sua dúvida! Se eu errar ou for pouco claro, reclame! Quando possivel eu tentarei melhorar. |
|
|
|
|
|
#6 (permalink) |
|
Membro Senior
|
Pessoal obrigado pela ajuda, preciso estudar mais a parte de strings em C, estou confuso não é como em outras linguagens que possuem variavel de tipo String, mas fiz em outros tipos e o algoritmo funcionou legal.
Que Buda ilumine a todos.
__________________
Slackware 12 / Rwindows XP / Kurumin 7.0 Kernel:2.6.22.1 "Viver apenas um dia e ouvir um bom ensinamento é melhor do que viver um século sem conhecer tal ensinamento." Buda. |
|
|
|
|
|
#7 (permalink) | |
|
Ubbergeek
Registrado em: Aug 2002
Mensagens: 4.576
Reputação: 85
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Citação:
Dê uma olhada no código abaixo, mas aviso que estou aprendendo a programar como você; com certeza está longe de ser um programa bem feito. Código:
Kali Última edição por jose_silva_neto : 07-05-2007 às 19:39. |
|
|
|
|
|
|
#8 (permalink) | |
|
Membro Senior
|
Citação:
, mas valeu pelo código tem algumas coisas complexas como ponteiros, alocação de memórias e tal que estou aprendendo ainda, mas em breve estarei postando algum código assim como você fez.Excelente meu nobre amigo, funcionou perfeitamente mais uma vez meu muito obrigado.![]()
__________________
Slackware 12 / Rwindows XP / Kurumin 7.0 Kernel:2.6.22.1 "Viver apenas um dia e ouvir um bom ensinamento é melhor do que viver um século sem conhecer tal ensinamento." Buda. |
|
|
|
|
![]() |
| Opções do Tópico | |
|
|