Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: juanpalomo098 en 7 Diciembre 2016, 16:04 pm



Título: Duda ejercicio C nº decimal pasar a otra base
Publicado por: juanpalomo098 en 7 Diciembre 2016, 16:04 pm
Hola, estoy intentando hacer este ejercicio y se me ha ocurrido hacerlo de esta forma, que creo en teoria creo deberia funcionar.
Un bucle que cuente el numero de cifras que va a contener el numero en la base que queramos y otro que halle los restos y los coloque en su posicion multiplicando por 10,100,1000... segun corresponda

¿Alguien ve algun error? (aparte del int y no sirve para numeros grandes)

EDITO ABAJO CREO QUE YA ESTA NO NECESITABA DOS BUCLES!!
Código
  1. #include<stdio.h>
  2. #include<conio.h>
  3. #include<math.h>
  4. void main(){
  5. int num,num1,n,resto,resul,cont,cont1,suma;
  6. printf("Introduce numero y base a la que se quieres convertir");
  7. scanf("%d%d",&num,&n);
  8. num1=num;
  9. cont=0;
  10. cont1=0;
  11. suma=0;
  12. do{
  13. while(num>=n && cont1==0){//primer bucle
  14. cont++;
  15. resul=num/n;
  16.  
  17. num=resul;}//fin primer bucle
  18. cont1++;//para que no entre de nuevo en el primer bucle
  19. printf("cont = %d\n",cont);//no sirve (ver cont al salir del bucle)
  20. resul=num1/n;
  21. resto=num1%n;
  22. suma=(suma+(resto*(pow(10,cont))));
  23.  
  24. num1=resul;
  25.  
  26. cont--;
  27.  
  28. }while(num1>=n);
  29.  
  30. printf("%d",suma);
Que follon habia hecho, creo que ya esta

Código
  1. #include<stdio.h>
  2. #include<conio.h>
  3. #include<math.h>
  4. void main(){
  5. int num,n,cont,resto,resul,suma;
  6. cont=0;
  7. suma=0;
  8. printf("Introduce numero y base a la que se quieres convertir");
  9. scanf("%d%d",&num,&n);
  10. do{
  11. resul=num/n;
  12. resto=num%n;
  13. suma=(suma+(resto*(pow(10,cont))));
  14. cont++;
  15. num=resul;
  16. }while(num>=n);
  17. suma=(suma+(resul*(pow(10,cont))));
  18. printf("%d",suma);
  19. getch();  
  20. }