SOLUCIÓN
Como el cambio se realizará a una base entre 1 y 10, esto nos facilita al momento de imprimir los resultados.
Iniciamos acotando la base al igual que el número ingresado, luego realizaremos el cambio de base mediante divisiones sucesivas con ayuda del bucle while, finalmente imprimimos los resultados mediante el bucle for.
CÓDIGO
- #include<stdio.h>
- int main()
- {
- int m,m2,n,i,j;
- int a[11];
- printf("Base:");
- scanf("%d",&n);
- while(n<2 || n>9)
- {
- printf("la base es mayor a 1 y menor a 10\n");
- scanf("%d",&n);
- }
- printf("Numero:");
- scanf("%d",&m);
- while(m<1 || m>1000)
- {
- printf("el numero debe estar entre 1 y 1000\n");
- scanf("%d",&m);
- }
- m2=m;
- i=0;
- while(m!=0)
- {
- a[i]=m%n;
- i++;
- m=m/n;
- }
- printf("\t%d=",m2);
- for(j=i-1;j>=0;j--)
- printf("%d",a[j]);
- printf(" en base %d",n);
- return 0;
- }