El programa: (lo que tiene que hacer es, leer un numero binario y pasarlo a decimal)
#include <stdio.h>
#include <conio.h>
int main()
{
   clrscr();
   int digit1, digit2, digit3, digit4, digit5, decimal_number;
   int newdigit1, newdigit2, newdigit3, newdigit4, newdigit5;
   long int binary_number, module;
   printf("Introduce un numero binario (0 y 1) de 5 digitos: ");
   scanf("%ld", &binary_number);
   digit1 = binary_number / 10000;
   module = binary_number % 10000;
   digit2 = module / 1000;
   module = binary_number % 1000;
   digit3 = module / 100;
   module = binary_number % 100;
   digit4 = module / 10;
   digit5 = module;
   newdigit1 = digit1 * 16;
   newdigit2 = digit2 * 8;
   newdigit3 = digit3 * 4;
   newdigit4 = digit4 * 2;
   newdigit5 = digit5 * 1;
   decimal_number = newdigit1 + newdigit2 + newdigit3 + newdigit4 + newdigit5;
   printf("El numero binario introducido es %d%d%d%d%d\nSu equivalente a decimal es %d", digit1, digit2, digit3, digit4, digit5, decimal_number);
   return 0;
}
A lo mejor a alguien le extraña las 5 variables newdigit (ya que se podian haver convertido directamente las digit a decimal 

) pero si no las usara en la frase del final si el numero binario introducido fuera 00010 me saldria como 10 

Pues weno, aki se sabe k va a haver 5 digitos (si escribes mas o menos el programa no funciona bien 

) la question esta en hacer un codigo en el k no sepamos cuantos cuantos digitos tendra el numero binario que introducira el usuario y desde luego k se calcule bien el resultado al ser pasado a decimal, e pensado algo pero solo funcionaria usuando arrays y tampoco se muy bien como hacerlo 

 alguien puede ayudar please?