Cornelius 0 Denunciar post Postado Abril 20, 2009 Olá, boa tarde, estou com dúvida num código que estou montando que no processo de ordenação da função bolha() acontece um resultado curioso, segue o código: #include <stdio.h> #include <stdlib.h> #include <string.h> #define t 3 struct cadastro{ char v[10]; }; int i; cadastro go[3]; //void recebe(); void recebe(){ for(i=0; i<t; i++){ printf("Digite o %d nome: ", i+1); scanf("%s", &go[i].v); } } void bolha(){ // função bolha int cont=1, j=0, aux1, aux2; char char_aux[10]; while(cont==1){ //while cont=0; for(i=0; i<t-1; i++){ //for i go[i].v[j] = (int)aux1; // essa atribuição faz o char do vetor "sumir" go[i+1].v[j] = (int)aux2; // essa atribuição faz o char do vetor "sumir" if(aux1>aux2){ //para saber qual letra é alfabeticamente a primeira strcpy(char_aux, go[i].v); strcpy(go[i].v, go[i+1].v); strcpy(go[i+1].v, char_aux); cont=1; break; } } //for i } //while } // função bolha void exibe(){ printf("Os numeros sao: "); for(i=0; i<t; i++){ printf("%s", go[i].v); if(go[i+1].v!=0){ printf(", "); } else{ printf("."); } } } int main(){ recebe(); bolha(); exibe(); system("pause"); } Obrigado http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Cornelius 0 Denunciar post Postado Abril 20, 2009 Olá, engraçado ne, acabei de postar vi o erro do código http://forum.imasters.com.br/public/style_emoticons/default/pinch.gif ... eis o problema: go[i].v[j] = (int)aux1; // essa atribuição faz o char do vetor "sumir" go[i+1].v[j] = (int)aux2; // essa atribuição faz o char do vetor "sumir" devia ser assim: aux1 = (int)go[i].v[j]; aux2 = (int)go[i+1].v[j]; Eu estava fazendo uma atribuição inversa http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif Obrigado gente http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites