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