• Martes 12 de Noviembre de 2024, 21:21

Autor Tema:  .. Numero String A Numero Int  (Leído 1370 veces)

cybergatita

  • Miembro MUY activo
  • ***
  • Mensajes: 154
    • Ver Perfil
.. Numero String A Numero Int
« en: Martes 7 de Noviembre de 2006, 00:38 »
0
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");

 printf("Teclea un numero de 4 digitos\n");

 scanf("%s",&cad[cont]);
 getch();
 printf("%d",®reso);
 getch();
  }



void funcioncadena(){


while(fin==0){

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

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: .. Numero String A Numero Int
« Respuesta #1 en: Martes 7 de Noviembre de 2006, 01:25 »
0
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
    1.  
    2. char cadena[ 5 ]
    3. ...
    4. scanf( "%s", cadena );
    5.  
    6.  
    </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).
La imaginación es el límite.
Hardware & Software | Mexchip

cybergatita

  • Miembro MUY activo
  • ***
  • Mensajes: 154
    • Ver Perfil
Re: .. Numero String A Numero Int
« Respuesta #2 en: Martes 7 de Noviembre de 2006, 03:33 »
0
gracias por tu respuesta chico