help! I need somebody! por fas!

Lauris_XD
10 de Abril del 2010
hola a todos!
estoy haciendo un programa de conversion de sistemas numericos, donde primero pregunta cuantos digitos va a tener el numero, luego los ingresa (se guardan en un arreglo), y le pide una base numerica...

cada digito se va a multiplicar por (1 entre (la base elevada a la cantidad de digitos)

cuando ingreso un solo numero sale el resultado correcto, pero cuando ya tiene mas de 2 digitos no se que pasa...les dejo mi programa para que chequen en que estoy mal...

#include<stdio.h>
#include<conio.h>
#include<math.h>
int a,b,c,o[50],w,z;
float f,d;

void main()
{

printf("ingrese cantidad de digitos del numero");
scanf("%d", &c);

printf("nIngresa el numero digito por digito: " );

for(w=0;w<c;w++)
{
scanf("%d", &z);
o[w]=z;
}

printf("ingrese base numerica:");
scanf("%d", &b);

for(w=0;w<c;w++)
{
for(a=1;a<=c;a++)
{
d=o[w]*1/pow(b,a);
f+=d;
}
}


printf("nel numero es: %f", f);

}//fin del programa


Esta compilado en turbo c++
y les dejo unos ejemplos para que vean como debe salir:

ingrese cantidad de digitos del numero:1
Ingresa el numero digito por digito: 1
ingrese base numerica: 2 (lo voy a convertir a base(2) )
**operaciones**
el numero es: 0.5


ahora si deseo que el numero tenga mas de 1 cifra:

ingrese cantidad de digitos del numero: 2
Ingresa el numero digito por digito: 1 [enter]
1 (ya tengo mis 2 cifras)

ingrese base numerica: 2 (lo voy a convertir a base(2) )
**operaciones**
el numero es: 0.75

espero y le entiendan...gracias