Programación General => C/C++ => Mensaje iniciado por: cybergatita en Martes 7 de Noviembre de 2006, 00:38
Título: .. Numero String A Numero Int
Publicado por: cybergatita en Martes 7 de Noviembre de 2006, 00:38
Que tal chicos, ojala puedan ayudarme, hice un pseudocodigo y lo implemente en C, solo que el problema es que me manda otro numero al mandarlo imprimir a entero. oijala puedan ayudarme
void funcioncadena(); char cad[5]={' ', ' ', ' ', ' ', ' '}; int potencias[5]={1,10,100,1000,10000}; int fin=0; int cont=0; int regreso=0; int pot=0; int a=0;
void main(){
printf(" Funcion convierte un numero ejem:4856 tomado como cadena \n"); printf(" lo convierte a numero entero \n");
if (cad[cont]=='\0'){ fin=cont; } else { cont++; } }fin--;
for(a=fin; a>=0; a--){
switch( cad[a]) {
case 1: regreso+=1*potencias[pot]; break;
case 2: regreso+=2*potencias[pot]; break;
case 3: regreso+=3*potencias[pot]; break;
case 4: regreso+=4*potencias[pot]; break;
case 5: regreso+=5*potencias[pot]; break;
} pot ++; } }
Título: Re: .. Numero String A Numero Int
Publicado por: Geo en Martes 7 de Noviembre de 2006, 01:25
Me parece ver algunos errores:
El primero es que no estás leyendo correctamente la cadena (además de que seguramente alguien cuestionará la seguridad de scanf para estas cosas :P). Deberías usar algo como esto:
Código: Text
char cadena[ 5 ]
...
scanf( "%s", cadena );
</li>
La manera en que la variable fin cambia su valor para salir del ciclo while( fin == 0 ).</li>
En el switch, ¿no deberías multiplicar la potencia por el dígito en cuestión (y no por 1, 2, 3... como lo pones en el código)?</li>
Saludos, JJ (Geo).
Título: Re: .. Numero String A Numero Int
Publicado por: cybergatita en Martes 7 de Noviembre de 2006, 03:33