Ayuda en c++ Urgente!!!!

Iniciado por ra00, 1 Julio 2014, 01:38 AM

0 Miembros y 1 Visitante están viendo este tema.

ra00

 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 (actionscript) [Seleccionar]
#include <iostream>


int main()
{
int dip, sen, inv, mon, num_sen, num_dip, num_inv;
printf("\nintroduzca el numero de monedas que aportaron los diputados") ;
printf("\n");
scanf("%i", & dip);
printf("\nintroduzca el numero de monedas que aportaron los senadores") ;
printf("\n");
scanf("%i", &sen );
printf("\nintroduzca el numero de monedas que aportaron los invitados") ;
printf("\n");
scanf("%i", & inv);
printf("\nintroduzca el numero total de monedas recolectadas") ;
printf("\n");
scanf("%i", & mon);
num_sen=mon/sen;
printf("\nla cantidad de senadores que asistieron es de:%d", num_sen );
num_dip=mon/dip;
printf("\nla cantidad de dip que asistieron es de:%d", num_dip );
num_inv=mon/inv;
printf("\nla cantidad de inv que asistieron es de:%d", num_inv );

return 0;
}

engel lex

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

Cita de: engel lex en  3 Marzo 2014, 00:57 AM
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...
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

leosansan

#2
Cita de: 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...

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

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:

Cita de: rafa011 en  2 Marzo 2014, 23:23 PM
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 (cpp) [Seleccionar]
#include <iostream>

using namespace std;

int main (){
 for (int i=0; i<=100; ++i)
    if ( (100-(369+35*i)/24-i) >=0 && 99*(369+35*i)/24+(100-(369+35*i)/24-i)*75 + 40*i == 7869 )
      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;
 return 0;
}


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



engel lex

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

CitarUn 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
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.