Herculano 0 Denunciar post Postado Março 25, 2009 Olá galera estou fazendo um trabalho em c q é o seguinte: você deve cria uma TAD conjunto, q deve armazenar um vetor com os números inteiros e o tamanho do vetor. exemplo: Conjunto [5][9][3][2][1] tamanho= 5 Eu tenho q transformar o vetor conjunto no numero 59321. Abaixo acompanha o algoritmo q eu criei. int Conj2Num(TConj a) { int Num=0; int iden=a.tamanho-1,aux; for(int i=0; i < a.tamanho;i++) { aux= a.valores[i] * (int)pow(10.0,float(iden)); Num = Num + aux; aux=0; iden--; } return Num; } Eu fiz o seguinte peguei o primeiro elemento e mulpliquei pela potência de 10 q corresponde a ele no caso 10^4. A primeira iteração do for ocorre certo 50000. Já segunda não ao vez ser 9000 fica 8991 q é (9000-9).As outras iterações do for ocorrem sem problemas. Se alguém tiver alguma ideia de como eu posso resolver esse problema. Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Março 25, 2009 minha lógica seria transformar primeiro td em string, ai você vai dando strcat você vai ter td junto soh q como string, ai você usa um atoi() e pronto td iria c converter para inteiro. ;D Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Março 25, 2009 Cara, eu compilei aqui e funcionou quase normal, mas o ultimo número não era mostrado. eu fiz uma funçãozinha pra você substituir pela pow() veja o que acontece. int power10(int n) { int aux=1, i; for (i=0; i<n; i++) aux *= 10; return aux; } Assim eu consegui compilar e funcionou perfeitamente. Compartilhar este post Link para o post Compartilhar em outros sites
Herculano 0 Denunciar post Postado Março 25, 2009 Valew Victor eu testei usando a sua função e funcionou. O problema é q a função q eu criei funciona apenas para alguns casos, por exemplo: Conjunto [8][16][6][11] tamanho= 4 o numero teria q ser 816611 porém a minha função retorna 9671. Acho q o modo mais eficaz para o meu caso seria como o quit falou. Vou testar usando string como ele disse e posto a resposta. Valew galera. Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Março 25, 2009 http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif va postando caso tenha duvidas ! []s Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Março 25, 2009 Pois é herculano... se você usar números maiores do que 9 no seu conjunto, a forma mais fácil é como o quit falou, vá de strings... :P [] Compartilhar este post Link para o post Compartilhar em outros sites
Herculano 0 Denunciar post Postado Março 25, 2009 Eu to tentando aki mais eu naum sei direito como funciona a função srtcat. Primeiro eu tenho transformar todos os valores do vetor em char ... (como eu faço isso coloco isso dentro de um for para converter). Dps é só usar o strcat e converter para inteiro. o Maior problema e transformar os elemento dos vetores. Como eu posso fazer isso ??? Vlw !! Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Março 25, 2009 http://forum.imasters.com.br/index.php?showtopic=323274 Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Março 25, 2009 calma ae o strcat vai concatenar hein. Compartilhar este post Link para o post Compartilhar em outros sites
Herculano 0 Denunciar post Postado Março 25, 2009 Eu fiz assim. Consigui converter o elementos do vetor para int. O problema agora é concatenar. A variavel num vai conter todo o numero porém no tipo char, para depois eu converte-la para int com o metodo atoi. Problema é strcat agora.Como uso ela do modo certo. Exemplo: Conjunto [45][2][4][5] Dentro do for 1 iteraçao num=45; 2 iteraçao num=452; 3 iteraçao num=4524; 4 iteraçao num=45245; Após isso fora do for eu converto para int usando atoi. Como eu faço isso usando strcat. int Conj2Num(TConj a) { char buf[255],num[225]; int numero; for(int i=0; i < a.tamanho; i++) { itoa(a.valores[i],buf,10); cout << buf << endl; num=strcat(num,buf); } numero = atoi(num); cout << numero << endl; return numero; } Compartilhar este post Link para o post Compartilhar em outros sites
Herculano 0 Denunciar post Postado Março 25, 2009 Consigui galera eu que estava errando na hora de utilizar a função strcat. Dps de muito tempo eu consigui terminar essa função valew galera. int Conj2Num(TConj a) { char buf[255],num[255]; int numero; for(int i=0; i < a.tamanho; i++) { itoa(a.valores[i],buf,10); cout << buf << endl; strcat(num,buf); } numero = atoi(num); cout << numero << endl; return numero; } Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Março 25, 2009 Boooooua! ainda bem que pudemos ajudar! []'s Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Março 26, 2009 http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites