Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: berto en 28 de Diciembre 2015, 15:55
-
Ejemplo :
dato=0009...resultado debe ser...1
dato=0025...2
dato=0109...3
dato=4830...4
También me gustaría hacer lo siguiente, no se si tendrá un nombre matemático yo lo desconozco.
dato1=25; dato2=109....resultado debe ser....25109
Lo que mas me gustaría es un ejemplo de codigo o saber si hay alguna funcion en C que desempeñe esto, mas su correspondiente #libreria pero agradeceria tambiénel nombre matemático de ambas para saber que tengo que buscar.
-
Buenas berto un valor como 0009 no es un valor numérico válido, por tanto tienes que tratarlo como una cadena. Para determinar el número válido dentro de la cadena tendrías que recorrer el array (arreglo) de caracteres que es la cadena comprobando dónde aparece el primer carácter distinto de cero. Los siguientes caracteres de la cadena se corresponderían con el valor numérico. El número de dígitos válidos sería el número de caracteres a partir del primer carácter distinto de cero.
Las bases para hacer todo esto las tienes explicadas en el curso http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=82&Itemid=210
En el segundo caso a partir de 25 y 109 obtener 25109 tienes que pensar si quieres hacerlo trabajando en modo numérico o en modo cadenas de texto. Si quieres hacerlo de forma numérica tendrás que usar matemáticas, si quieres hacerlo como cadenas de caracteres la operación se llama "concatenación".
Salu2
-
Gracias por el aporte pero pasar a cadenas, tratar con arrays es lo ultimo que quería yo hasta ahora no he utilizado char en ccs. Tampoco me convence algo que he visto a base de meter bucles for para concatenar enteros (por el tiempo de ejecución)
Creo que esto seria mas rápido
if (dato1>99){ multiplica=1000; }//Esto es lo mas probable que se cumpla
else { if(dato1>9) { multiplica=100; }
else { multiplica=10; } }
resultado = dato1+(dato2*multiplica);//dto2 concatenacion dato1