#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;
}