Duda ejercicio C nº decimal pasar a otra base

Iniciado por juanpalomo098, 7 Diciembre 2016, 16:04 PM

0 Miembros y 1 Visitante están viendo este tema.

juanpalomo098

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!!
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main(){
int num,num1,n,resto,resul,cont,cont1,suma;
printf("Introduce numero y base a la que se quieres convertir");
scanf("%d%d",&num,&n);
num1=num;
cont=0;
cont1=0;
suma=0;
do{
while(num>=n && cont1==0){//primer bucle
cont++;
resul=num/n;

num=resul;}//fin primer bucle
cont1++;//para que no entre de nuevo en el primer bucle
printf("cont = %d\n",cont);//no sirve (ver cont al salir del bucle)
resul=num1/n;
resto=num1%n;
suma=(suma+(resto*(pow(10,cont))));

num1=resul;

cont--;

}while(num1>=n);

printf("%d",suma);
getch();

Que follon habia hecho, creo que ya esta

#include<stdio.h>
#include<conio.h>
#include<math.h>
void main(){
int num,n,cont,resto,resul,suma;
cont=0;
suma=0;
printf("Introduce numero y base a la que se quieres convertir");
scanf("%d%d",&num,&n);
do{
resul=num/n;
resto=num%n;
suma=(suma+(resto*(pow(10,cont))));
cont++;
num=resul;
}while(num>=n);
suma=(suma+(resul*(pow(10,cont))));
printf("%d",suma);
getch();  
}