Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - ace332

#1
Foro Libre / Re: Cuentanos tu mejor chiste!!
17 Enero 2012, 23:56 PM
Cita de: B€T€B€ en 16 Enero 2012, 01:27 AM
Cojemos unos cuantos politicos españoles de los que han arruinado este pais y los facturamos hacia china.

No funcionaria. En china les aplican la pena capital a los funcionarios corruptos  :silbar:
#2
Cita de: rir3760 en  6 Enero 2012, 00:23 AM
BlackZeroX (Astaroth) se refiere (supongo) a que no es necesario declarar la variable ya que en su lugar puedes utilizar el parámetro "s". De hacerlo así la función se reduce a:
int extraernum(const char *s)
{
  int n = 0;
 
  while (*s){
     if (isdigit(*s))
        n = 10 * n + *s - '0';
     
     s++;
  }
 
  return n;
}


Un saludo
Gracias
#3
Cita de: BlackZeroX (Astaroth) en  5 Enero 2012, 07:14 AM
@GarbageCollecter
Tu codigo tiene una declaración que es absurda... mas en espesifico const char *p...

¡Absurda! ¿Porqué?! :xD

const char *p;

indica que los caracteres apuntados por p no serán modificados como es el caso de la función. La función printf también hace uso de const char *.
#4
No hay cuidado  ;D Ahora el code sí cumple con las especificaciones del problema:


#include <stdio.h>
#include <ctype.h>

#define MAX_DIGITOS 1000

int extraernum(const char *s, char *n);

int main()
{
 char n[MAX_DIGITOS];
 int cdig;
 cdig=extraernum("ewiuc3dskhd8nkd62ndsnk9",n);
 printf("%s\n%d\n",n,cdig);
 return 0;
}

int extraernum(const char *s, char *n)
{
 const char *p=s;
 int cdig=0;
 while(*p)
 {
   if(isdigit(*p)) n[cdig++]=*p;
   p++;
 }
 n[cdig]='\0';
 return cdig;
}
#5
Bueno estoy suponiendo que no hay más de 9 digitos en la cadena (por que sino no caverán en un int)

#include <stdio.h>
#include <ctype.h>

int extraernum(const char *s);

int main()
{
 printf("%d\n",extraernum("ewiuc3dskhd8nkd62ndsnk9"));
 return 0;
}

int extraernum(const char *s)
{
 const char *p=s;
 int n=0;
 while(*p)
 {
   if(isdigit(*p)) n=10*n+((*p)-'0');
   p++;
 }
 return n;
}


EDIT: No habia leído los códigos de más arriba antes de hacer este post  :-[. En este uso básicamente es el MISMO ALGORITMO que utilizó Kronos14.
#6
Cita de: RHL - 该0在 en  4 Enero 2012, 01:35 AM
aver si alguien se anima a publicar un reto :3

See.. se aprenden varias cosas al "diseccionar" un problema como se hizo en este hilo.  ;D

Saludos
#7
Si doy pistas se hará muy fácil, deben resolverlo asi  com está  :P
#8
¿Qué, no esta claro?  :xD
Cita de: |Demon| en  1 Enero 2012, 19:35 PM
¿Al poner "MM" se supone que es el mimso número duplicado?

Sí  :), los tres sumandos son números de dos digitos iguales, como 11 o 22... Una misma letra representa el mismo digito.

Un saludo
#9
En la siguiente suma cada letra representa un dígito



     MM +
     AA
     DD
    ---
    MAD


Se pide determinar el valor de M+A+D

Aver cuanto se tardan  :D

Aclaración: Una letra distinta significa digito distinto



Usuarios que enviaron una solución correcta (en orden de llegada):


  • Isótopo
  • greenchar
  • |Demon|
  • g0nsan
  • paskaly
  • $Edu$
  • Kal3o
  • Sagrini
  • ShotgunLogic
  • bicker
  • Maik33
  • crawler!
  • endertxo


#10
Eso se puede hacer perfectamente con las bibliotecas para hacer videojuegos.  Dos opciones muy populares son Allegro y SDL.

Saludos