ayuda con un ejercicio c++

Iniciado por fedee975, 4 Mayo 2013, 19:03 PM

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

fedee975

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

leosansan


Por qué no cuelgas el código que llevas hecho. Es más fácil así corregir o incluir sugerencias.

Saluditos!. .... 

fedee975

jaj, no arranque el codigo por que no se como hacerlo XD es decir nose como sacar el maximo de un switch

amchacon

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
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

leosansan

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

fedee975

#5
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");


amchacon

#6
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.
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar