elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con programa en C.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con programa en C.  (Leído 1,264 veces)
EdgarKrieger

Desconectado Desconectado

Mensajes: 50


Necesito aprender mucho más


Ver Perfil
Ayuda con programa en C.
« en: 30 Octubre 2018, 19:18 pm »

Hola comunidad, ahora les tengo un problema que para algunos les será bastante fácil, otros no se jejejeje como a mi, lo que sucede es que tengo que hacer un programa en C que dados tres números p,s,r se debe determinar el número d de días, es decir, si se tiene una profundidad d=10 y se sube al día s=5 y se resbala r=2, cuantos días se tarda en recorrer la profundidad establecida. El resultado es d=3 días, mi problema es que no me funciona para otros casos y solamente puedo resolver este problema por medio de si condicionales (if-else), el código que hice es este:

Código
  1. /*
  2. Dados los numeros p,s,r deberas determinar el numero d de dias que tarda en salir
  3. el caracol del agujero.
  4.  
  5. La entrada consiste de tres numeros enteros p,s,r (con s>r), separados por espacios
  6.  que tendran un valor entre 1 y 1000000. La salida consiste de un numero entero d.
  7. */
  8.  
  9. #include <stdio.h>
  10.  
  11. int main(){
  12. int p=0,s=0,r=0,d=0,res=0,res2=0;
  13.  
  14. scanf("%d %d %d",&p,&s,&r);
  15.  
  16. if(r>s){
  17. printf("El caracol nunca lograra salir del agujero\n");
  18. }else{
  19. if(d<p){
  20. res=s+r;
  21. d=p-res;
  22. }
  23. printf("%d\n",d);
  24. }
  25.  
  26.    return 0;
  27. }
  28.  

lo intente con otras formulas y la función while, pero aún así no me funciona.

Código
  1. while(d<p){
  2. res=p-s;
  3. res2=res+r;
  4. d++;
  5. }
  6.  

Alguien que me pueda ayudar, se lo agradecería mucho, es un ejercicio que tengo que realizar, pero nada más no me sale. Gracias por su ayuda.


En línea

"Las matemáticas son el lenguaje, el idioma que utilizo Dios para escribir el mundo"
Galileo Galilei
AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.696


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Ayuda con programa en C.
« Respuesta #1 en: 30 Octubre 2018, 20:01 pm »

Hola que tal, estos problemas tienen trampa, generalmente si los tratas de resolver de forma iterativa (Simulando con while la cantidad de dias transcurridos haciendo las operaciones de suma y resta del avance diario) tarda mucho, bueno si y no, con la velocidad actual de las computadoras no se siente, pero este tipo de problemas es para concursos donde miden el tiempo de uso del CPU y la cantidad de tiempo que tarda el programa en responder.

Por que la verdad es muy distinto, realizar un simple par de sumas, restas y una division a realizar un ciclo while con 1000000 repeticiones de sumas y restas.

La solución a este problema es de forma Matemática.

Ejemplo, si te dicen que Sube S cantidad de metros por dia, y de noche baja R cantidad.
En un ciclo completo cuantos metros T totales realmente sube?

Código:
T = S - R

Entonces tenemos que por dia avanza T metros. Entonces el minimo numero de D dias para completar una distancia P es de

Código:
D = P /T

D= P / (S-R)

Puede darnos un numero Decimal ? SI

Solo necesitamos la parte entera de ese numero, es decir redondeamos hacia el Entero mas Bajo

Por ejemplo un resultado de 9.9 se redondea a 9.

Saludos


En línea

EdgarKrieger

Desconectado Desconectado

Mensajes: 50


Necesito aprender mucho más


Ver Perfil
Re: Ayuda con programa en C.
« Respuesta #2 en: 31 Octubre 2018, 00:58 am »

Muchas gracias por tu ayuda AlbertoBSD, pues si estaba algo perdido jejeje, seguiré practicando mucho más.
Saludos.
En línea

"Las matemáticas son el lenguaje, el idioma que utilizo Dios para escribir el mundo"
Galileo Galilei
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
AYUDA CON PROGRAMA
Diseño Gráfico
Luisango 1 2,417 Último mensaje 17 Abril 2005, 13:25 pm
por Sub_Cero
ayuda con mi programa
Programación Visual Basic
nitrox 2 2,316 Último mensaje 31 Julio 2005, 00:48 am
por Slasher-K
[Ayuda] ¿Cómo ejecutar otro programa desde mi programa de C#?
.NET (C#, VB.NET, ASP)
Zodiak98 1 6,025 Último mensaje 8 Diciembre 2013, 01:51 am
por Eleкtro
[AYUDA] Ayuda con NETCAT o cualquier otro programa similar
Dudas Generales
Noxware 0 2,151 Último mensaje 16 Junio 2014, 18:13 pm
por Noxware
AYUDA! ---- Programa en lenguaje C en programa Dev-C ++ ---- AYUDA!
Programación C/C++
EduardoSaenz 4 3,830 Último mensaje 7 Mayo 2016, 23:38 pm
por MAFUS
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines