Holaa tengo que hacer este ejercicio y no consigo que me salga, estoy empezando con los arrays y aun no lo controlo bien:
Escriba una función que acepte de entrada una cadena y devuelva un número entero. La función efectuará la conversión de un número entero en base 10 a cualquier base menor a 10. La cadena de entrada es un string en formato "número/base". El programa principal leerá la cadena, llamará a la función, y mostrará el resultado Ejemplo: - Introduzca dato: 723/4 - Indica que el número 723 hay que convertirlo a base 4.
NOTA: Como la salida es un entero, está limitado el número de dígitos a usar. En particular, para base 2 funcionará bien para el número 1023, pero el número 1024 en base 2 requiere 11 dígitos, lo cual no cabe en la variable entera de salida, generando un resultado erróneo. Se puede evitar ese problema haciendo que la variable de salida sea de tipo cadena.
Esto es lo q yo he hecho, me salen muchos errores:
#include <iostream>
#include<array>
using namespace std;
int Conversor(string numero,string base,string& cociente)
{
int contador=1,i;
cociente=numero;
while(cociente>=base)
{
cociente=cociente/base;
contador++;
}
for(i=contador; i>0; i--)
{
cociente=numero;
contador=i;
while(contador>1)
{
cociente=cociente/base;
contador--;
}
}
}
int main()
{
string numero,base;
cout<<"Escribe el numero que quieres convertir (num/base): ";
getline(cin,numero,'/');
getline(cin,base,'\n');
if(base<=10)
Conversor(numero,base);
else
cout<<"Error no es una base menor de 10";
return 0;
}
Escriba una función que acepte de entrada una cadena y devuelva un número entero. La función efectuará la conversión de un número entero en base 10 a cualquier base menor a 10. La cadena de entrada es un string en formato "número/base". El programa principal leerá la cadena, llamará a la función, y mostrará el resultado Ejemplo: - Introduzca dato: 723/4 - Indica que el número 723 hay que convertirlo a base 4.
NOTA: Como la salida es un entero, está limitado el número de dígitos a usar. En particular, para base 2 funcionará bien para el número 1023, pero el número 1024 en base 2 requiere 11 dígitos, lo cual no cabe en la variable entera de salida, generando un resultado erróneo. Se puede evitar ese problema haciendo que la variable de salida sea de tipo cadena.
Esto es lo q yo he hecho, me salen muchos errores:
#include <iostream>
#include<array>
using namespace std;
int Conversor(string numero,string base,string& cociente)
{
int contador=1,i;
cociente=numero;
while(cociente>=base)
{
cociente=cociente/base;
contador++;
}
for(i=contador; i>0; i--)
{
cociente=numero;
contador=i;
while(contador>1)
{
cociente=cociente/base;
contador--;
}
}
}
int main()
{
string numero,base;
cout<<"Escribe el numero que quieres convertir (num/base): ";
getline(cin,numero,'/');
getline(cin,base,'\n');
if(base<=10)
Conversor(numero,base);
else
cout<<"Error no es una base menor de 10";
return 0;
}