#include #include int read_in_base(int); int main(void) { int i, n, base; char *the_number[20]; for (i = 1; i <= 5; i++){ printf("Enter number base (a decimal number)" "and a number in that base: "); scanf("%d %s", &base, the_number); printf("The decimal number is: %d\n", to_decimal_number(the_number, base)); } return 0; } /* Convert the string n to a decimal number in base and return it. Assume that input string is without errors */ int to_decimal_number(char *n, int base){ int ciffer_number, res = 0; char *ciffer_ptr = &n[0], ciffer = *ciffer_ptr; do { if (ciffer >= '0' && ciffer <= '9') ciffer_number = ciffer - '0'; else if (ciffer >= 'a' && ciffer <= 'z') ciffer_number = ciffer - 'a' + 10; else ciffer_number = -1; /* error */ if (ciffer_number >= 0 && ciffer_number < base) res = res * base + ciffer_number; ciffer_ptr++; ciffer = *ciffer_ptr; } while (ciffer != '\0'); return res; }