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

 

 


Tema destacado: Tutorial básico de Quickjs


+  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 465 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

A través de los años eh aprendido que si realmente queremos hacer algo o aprender cosas nuevas necesitamos hacer muchos sacrificios como tiempo , dinero, personas, etc. y puedo decir que me falta mucho por aprender.
AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.597


🏴 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

Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW
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

A través de los años eh aprendido que si realmente queremos hacer algo o aprender cosas nuevas necesitamos hacer muchos sacrificios como tiempo , dinero, personas, etc. y puedo decir que me falta mucho por aprender.
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 1,475 Último mensaje 17 Abril 2005, 13:25 pm
por Sub_Cero
ayuda con mi programa
Programación Visual Basic
nitrox 2 1,700 Ú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 2,525 Último mensaje 8 Diciembre 2013, 01:51 am
por Eleкtro
[AYUDA] Ayuda con NETCAT o cualquier otro programa similar
Dudas Generales
Noxware 0 1,317 Ú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 2,369 Último mensaje 7 Mayo 2016, 23:38 pm
por MAFUS
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines