Código C:
Ver original
#include <stdio.h> void menu(); int db(char[]); int dh(); int bd(); int bh(); int hd(); int hb(); int main(){ int num,opc; char numero[20]; menu(); switch(opc){ case 1: db(numero);break; case 2: dh();break; case 3: bd();break; case 4: bh();break; case 5: hd();break; case 6: hb();break; } } void menu (){ } int db(char nume[20]){ char *asd; asd=nume; int pos,fin,res=0,calc=0,aa=1; for(int i=19; i>=0;i--){ if(asd[i]>=48 && asd[i]<=57){ pos=i; break; } } for(int i=19; i>=0;i--){ if(asd[i]>=48 && asd[i]<=57){ fin=i; } } if(fin==0){ for(int i=pos;i>=0;i--){ calc=asd[i]-48; //printf("%d\n",calc); res=res+calc*aa; aa=aa*10; } if(res>=0){ calc=res%2; res=res/2; asd[0]=calc+48; int j=1; //printf("%d",res); while(res>=2){ //printf("%d",res); calc=res%2; res=res/2; asd[j]=calc+48; pos=j; j++; } } //printf("\n\n%d",pos); return 0; } int dh(){} int bd(){} int bh(){} int hd(){} int hb(){}
El problema es que en la linea 77 tengo un printf entre comentarios, imprimiendo la variable res igual que en la linea 70, el problema es que cuando quito los comentarios en la linea 77, me imprime unos numeros raros tanto en la linea 70 como en la linea 77; pero si dejo la linea 77 en comentarios me imprime el numero correctamente, que es el que uno digita por pantalla.



; tu correccion es en cierta parte valida; si miras bien el for de donde depende el valor de la variable pos es igual al ciclo que de donde depende la variable fin, osea que si no hay un caracter entre 48 y 57 en el array ninguno de las dos variables va a ser "correcta", y por lo tanto seria un numero no valido y retornaria 0; pero digamos que al introducir un numero "valido" la variable fin ya tendria un valor igual 0 no deberia salir ese error.
y que parece que no es muy conocido:

por eso yo creia que daba lo mismo recorrerlo en cualquier sentido y que los numeros basura podian ser todos como -188 pero lo comprobe con un FOR y si puede salir cualquier numero pero lo importante fue que me despejaste todas las dudas y que aprendi. Muchas gracias!!! 

