Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: fedee975 en 4 Mayo 2013, 19:03 PM

Título: ayuda con un ejercicio c++
Publicado por: fedee975 en 4 Mayo 2013, 19:03 PM
se puede hacer un switch que acumule datos? y si la respuesta es si, que creo que la es,

en el ejercicio hice un switch de 6 mozos para saber que cantidad de personas atendió cada uno,

después me pide que mozo atendió mas personas en total? como lo debería hacer?

muchas gracias
Título: Re: ayuda con un ejercicio c++
Publicado por: leosansan en 4 Mayo 2013, 19:39 PM

Por qué no cuelgas el código que llevas hecho. Es más fácil así corregir o incluir sugerencias.
(http://)
Saluditos!. ....  (http://st.forocoches.com/foro/images/smilies/aaaaa.gif)
Título: Re: ayuda con un ejercicio c++
Publicado por: fedee975 en 4 Mayo 2013, 20:10 PM
jaj, no arranque el codigo por que no se como hacerlo XD es decir nose como sacar el maximo de un switch
Título: Re: ayuda con un ejercicio c++
Publicado por: amchacon en 4 Mayo 2013, 20:54 PM
No se puede sacar el máximo con un switch.

Debes hacerlo con ifs:

Código (cpp) [Seleccionar]
if (Numero1 > Numero2) // El maximo es el numero1
else // Sino, el maximo será el numero2
Título: Re: ayuda con un ejercicio c++
Publicado por: leosansan en 4 Mayo 2013, 21:01 PM
Cita de: fedee975 en  4 Mayo 2013, 20:10 PM
jaj, no arranque el codigo por que no se como hacerlo XD es decir nose como sacar el maximo de un switch

Un simple ejemplo donde en sum acumulas y ya luego sería comparar para hallar el máximo:

Código (cpp) [Seleccionar]

#include <stdio.h>
int main() {
        int nota=0,sum1=0,sum2=0;
        while(nota!=-1){
            printf(" Inserte uno o dos : ");  scanf("%d",&nota);
            switch(nota) {
                case 1:  sum1++;printf("%d",sum1); break;
                case 2:  sum2++;printf("%d",sum2); break;
                default: printf("esa nota es incorrecta");
        }
    }
    return 0;
}


Claro que con un array quedaría mejor, es un simple ejemplo de lo que puedes hacer en el switch para acumular valores.

Saluditos!. ....  (http://st.forocoches.com/foro/images/smilies/simba1.gif)
Título: Re: ayuda con un ejercicio c++
Publicado por: fedee975 en 4 Mayo 2013, 21:43 PM
muchas gracias por las respuestas, el tema es que tengo que comparar 6 valores, y con if se me va a hacer un chorizo gigante jaj

no hay otro modo para hacerlo mas corto?

edit : lo deje asi


if((ac1>ac2)&&(ac1>ac3)&&(ac1>ac4)&&(ac1>ac5)&&(ac1>ac6))
printf("el mozo numero 1 atendio mas clientes\n\n");
if((ac2>ac1)&&(ac2>ac3)&&(ac2>ac4)&&(ac2>ac5)&&(ac2>ac6))
printf("el mozo numero 2 atendio mas clientes\n\n");
if((ac3>ac1)&&(ac3>ac2)&&(ac3>ac4)&&(ac3>ac5)&&(ac3>ac6))
printf("el mozo numero 3 atendio mas clientes\n\n");
if((ac4>ac1)&&(ac4>ac2)&&(ac4>ac5)&&(ac4>ac6)&&(ac4>ac3))
printf("el mozo numero 4 atendio mas clientes\n\n");
if((ac5>ac1)&&(ac5>ac2)&&(ac5>ac3)&&(ac5>ac4)&&(ac5>ac6))
printf("el mozo numero 5 atendio mas clientes\n\n");
if((ac6>ac2)&&(ac6>ac3)&&(ac6>ac4)&&(ac6>ac5)&&(ac6>ac1))
printf("el mozo numero 6 atendio mas clientes\n\n");

Título: Re: ayuda con un ejercicio c++
Publicado por: amchacon en 4 Mayo 2013, 22:56 PM
Vamos a usar reducción al absurdo.

Mete todos los números en un array:

int Numero[6];

Consideramos que el elemento 0 es el máximo:


int i = 1;
int Max = 0;

for (i = 1; i < 6;i++)
{
    if (Numero[i] > Numero[Max])
           Max = i;
}

// El maximo es el elemento Numero[Max];


Si encontramos algun número mayor que nuestro valor establecido. Reasignamos nuestra hipotesis.