#include <stdio.h>
#include <string.h>
#include <math.h>
int main()
{
char v[30];
float t=0.0;
int b=0;
int e=0;
int c=1;
printf( "--------------------------------------------\nAny Base -> Base10 by: Michael K. Pellegrino\n--------------------------------------------");
while( c )
{
t=0.0;b=0;e=0;
printf( "\nEnter a number in any base (-1 to quit): ");
scanf( "%s", &v );
if( atoi(v)==-1 )
{
c=0;
break;
}
else
{
printf( "\nEnter a base (-1 to quit): ");
scanf( "%i", &b );
if( b==-1 )
{
c=0;
break;
}
}
for( int l=0; l<strlen(v); l++ )
{
char d=v[l];
if( d>57 ) d-=7;
d-=48;
if( (d<0) || (d>(b-1)))
{
printf( "\n[ERROR - Invalid digit (%c)]\n", d+48 );
e=1;
break;
}
float z=strlen(v)-l-1;
t+=d*pow(b,z);
}
if( e==0 ) printf( "\n%s base %i is %i base 10\n\n", v, b, (int)t);
}
return 0;
}