Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: ra00 en 1 Julio 2014, 01:38 am



Título: Ayuda en c++ Urgente!!!!
Publicado por: ra00 en 1 Julio 2014, 01:38 am
 Un centenar de políticos e invitados asistieron a un banquete para recaudar fondos. Cada uno de los diputados que asistió pagó 75 monedas, cada senador 99 y cada invitado 40 monedas. Si en total se ingresaron 7869 monedas, Hacer un programa en C que determine Cuántos Diputados, Senadores e Invitados había, respectivamente? Ayudenme me tiene que dar 100 y se pasa que hago
Código
  1. #include <iostream>
  2.  
  3.  
  4. int main()
  5. {
  6. int dip, sen, inv, mon, num_sen, num_dip, num_inv;
  7. printf("\nintroduzca el numero de monedas que aportaron los diputados") ;
  8. printf("\n");
  9. scanf("%i", & dip);
  10. printf("\nintroduzca el numero de monedas que aportaron los senadores") ;
  11. printf("\n");
  12. scanf("%i", &sen );
  13. printf("\nintroduzca el numero de monedas que aportaron los invitados") ;
  14. printf("\n");
  15. scanf("%i", & inv);
  16. printf("\nintroduzca el numero total de monedas recolectadas") ;
  17. printf("\n");
  18. scanf("%i", & mon);
  19. num_sen=mon/sen;
  20. printf("\nla cantidad de senadores que asistieron es de:%d", num_sen );
  21. num_dip=mon/dip;
  22. printf("\nla cantidad de dip que asistieron es de:%d", num_dip );
  23. num_inv=mon/inv;
  24. printf("\nla cantidad de inv que asistieron es de:%d", num_inv );
  25.  
  26. return 0;
  27. }


Título: Re: Ayuda en c++ Urgente!!!!
Publicado por: engel lex en 1 Julio 2014, 02:08 am
lo que preguntas, en el otro tema, no te sirve, porque la otra persona tenía un dato extra que le permitía hacer un sistema de ecuaciones, que era el dato sobre la cantidad de invitados...


tu formula es

algo como
Código:
A*75 + B*99 + C*40 = 7896

y estás tratando de obtener las respuestas por una simple división o no se puede de esa manera, en este caso tienes que hacer "fuerza bruta" mira mi respuesta en el otro tema y se aplica casi al 100% para ti

intenta aplicar esto (modificado a tu problema, que no tiene indicado que son 100 invitados) y escribe si te trancas

qué sabes de c?

lo básico seria por fuerza bruta:

colocar 3 variables que entre ellas siempre deben sumar 100 (hombre, mujeres, y niños, las llamare A, B y C respectivamente)

usar 1 ciclo para recorrer la primera variable, desde 1  hasta 98 (esto porque las otras deben valer siempre por lo menos 1 c/u)

el segundo ciclo va desde 1 hasta 100-A-1 (100 es la sumatoria, A es el valor de la variable en primer ciclo, 1 es el valor minimo de la tercera variable)

en este segundo ciclo C va a ser igual a 100-A-B para mantener siempre la proporción de 100

por ultimo en este ciclo creas un if donde si A*75 + B*99 + C*40 = 7869 entonces tienes la combinación correcta... en ese caso, imprimes en pantalla y listo...

ya lo que tienes que hacer es volver a código eso que te dije... no es tanto, 2 ciclos  un if y algunas sumas...


Título: Re: Ayuda en c++ Urgente!!!!
Publicado por: leosansan en 1 Julio 2014, 16:55 pm
lo que preguntas, en el otro tema, no te sirve, porque la otra persona tenía un dato extra que le permitía hacer un sistema de ecuaciones, que era el dato sobre la cantidad de invitados...

.................................

intenta aplicar esto (modificado a tu problema, que no tiene indicado que son 100 invitados........................


Perdona la observación engel lex y si me equivoco corrígeme, please:

Un centenar de mujeres, hombres y niños asistieron a un banquete para recaudar fondos.
...............................

Con lo que basta un simple for para obtener la solución:

Citar
Diputados: 33  Senadores: 46  Invitados: 21  Total: 100  Total recaudado: 7869

Process returned 0 (0x0)   execution time : 0.023 s
Press any key to continue.

Y a quien procede, dejo el código ya que creo que está bien "ofuscado" y no serviría para "entregar" como solución, a no ser que se lo curre y se entere de lo que pone. En cualquier caso aconsejo visitar el enlace de la cita de engel lex en su mensaje para "ampliar" puntos de vista:

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main (){
  6.  for (int i=0; i<=100; ++i)
  7.    if ( (100-(369+35*i)/24-i) >=0 && 99*(369+35*i)/24+(100-(369+35*i)/24-i)*75 + 40*i == 7869 )
  8.      cout << "Diputados: " << (100-(369+35*i)/24-i) << "  Senadores: "<< (369+35*i)/24 << "  Invitados: " << i << "  Total: " << (369+35*i)/24+(100-(369+35*i)/24-i)+i << "  Total recaudado: " << (100-(369+35*i)/24-i)*75 +99*(369+35*i)/24+ 40*i << endl;
  9.  return 0;
  10. }

¡¡¡¡ Saluditos! ..... !!!!


(http://st.forocoches.com/foro/images/smilies/aaaaa.gif)


Título: Re: Ayuda en c++ Urgente!!!!
Publicado por: engel lex en 1 Julio 2014, 20:11 pm
leo XD creo que me estas mezclando 2 cosas... estas respondiendo lo que habiamos discutido antes XD...

sin embargome doy cuenta que lei mal el ejercicio

Citar
Un centenar de políticos e invitados asistieron a un banquete para recaudar fondos. Cada uno de los diputados que asistió pagó 75 monedas, cada senador 99 y cada invitado 40 monedas. Si en total se ingresaron 7869 monedas, Hacer un programa en C que determine Cuántos Diputados, Senadores e Invitados había, respectivamente?

esta bien XD me equivoque, es decir, la primera cita y el otro tema funciona en 100% XD