Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

St0rM

Determinar vencedor com maior pontuação [C]

Recommended Posts

Olá, por incrível que pareça eu não estou conseguindo determinar quem é o vencedor com a maior pontuação (total de 7 jogadores) em linguagem C, sem usar vetores, funções e coisas do tipo. Parece ser algo bem simples, mas até agora não veio nada em mente. Pensei em usar o if, mas aí teria que usar um para cada um, ficaria um negócio gigante, e pelo jeito realmente não deve ser da forma que estava pensando. :P

 

Exemplo:

 

Tabela de jogadores

printf("Jogador 1) V: %3d E: %3d D: %3d P: %3d\n", vit1, emp1, der1, 3*vit1 + emp1);
printf("Jogador 2) V: %3d E: %3d D: %3d P: %3d\n", vit2, emp2, der2, 3*vit2 + emp2);
printf("Jogador 3) V: %3d E: %3d D: %3d P: %3d\n", vit3, emp3, der3, 3*vit3 + emp3);
printf("Jogador 4) V: %3d E: %3d D: %3d P: %3d\n", vit4, emp4, der4, 3*vit4 + emp4);
printf("Jogador 5) V: %3d E: %3d D: %3d P: %3d\n", vit5, emp5, der5, 3*vit5 + emp5);
printf("Jogador 6) V: %3d E: %3d D: %3d P: %3d\n", vit6, emp6, der6, 3*vit6 + emp6);
printf("Jogador 7) V: %3d E: %3d D: %3d P: %3d\n", vit7, emp7, der7, 3*vit7 + emp7);

O(s) vencedor(es) deve(m) aparecer:

Jogador X) V: YYY E: ZZZ D: WWW P: KKK === VENCEDOR ===

Grato pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rapaz,

o código acima parece meio embaraçado e incompleto, mas entendi o que você quer.

Acho difícil não usar vetores, funções e controles de fluxo (if, for, while ou switch).

 

tente usar pelo menos if's, as vezes o que parece ser simples é muito complicado, é tipo querer ir ao super-mercado sozinho sem ter braços e pernas.

 

Se você mudar de ideia estou a disposição pra resolver.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rapaz,

o código acima parece meio embaraçado e incompleto, mas entendi o que você quer.

Acho difícil não usar vetores, funções e controles de fluxo (if, for, while ou switch).

 

tente usar pelo menos if's, as vezes o que parece ser simples é muito complicado, é tipo querer ir ao super-mercado sozinho sem ter braços e pernas.

 

Se você mudar de ideia estou a disposição pra resolver.

 

Não, pode usar if, for, while ou switch sim. A única limitação é não poder usar vetores, justamente para praticar as estruturas condicionais.

O resultado que eu cheguei foi o seguinte:

 

/* tabela de pontuação dos jogadores */
    p1 = 3*vit1 + emp1;
    p2 = 3*vit2 + emp2;
    p3 = 3*vit3 + emp3;
    p4 = 3*vit4 + emp4;
    p5 = 3*vit5 + emp5;
    p6 = 3*vit6 + emp6;
    p7 = 3*vit7 + emp7;

    if (p1 >= p2 && p1 >= p3 && p1 >= p4 && p1 >= p5 && p1 >= p6 && p1 >= p7)
       maior = p1;
    if (p2 >= p1 && p2 >= p3 && p2 >= p4 && p2 >= p5 && p2 >= p6 && p2 >= p7)
       maior = p2;
    if (p3 >= p2 && p3 >= p1 && p3 >= p4 && p3 >= p5 && p3 >= p6 && p3 >= p7)
       maior = p3;
    if (p4 >= p2 && p4 >= p3 && p4 >= p1 && p4 >= p5 && p4 >= p6 && p4 >= p7)
       maior = p4;
    if (p5 >= p2 && p5 >= p3 && p5 >= p4 && p5 >= p1 && p5 >= p6 && p5 >= p7)
       maior = p5;
    if (p6 >= p2 && p6 >= p3 && p6 >= p4 && p6 >= p5 && p6 >= p1 && p6 >= p7)
       maior = p6;
    if (p7 >= p2 && p7 >= p3 && p7 >= p4 && p7 >= p5 && p7 >= p6 && p7 >= p1)
       maior = p7;

    printf("Jogador 1) V: %3d E: %3d D: %3d P: %3d", vit1, emp1, der1, 3*vit1 + emp1);
    if (maior == p1)
       printf(" === VENCEDOR ===\n");
       else printf("\n");
    printf("Jogador 2) V: %3d E: %3d D: %3d P: %3d", vit2, emp2, der2, 3*vit2 + emp2);
    if (maior == p2)
       printf(" === VENCEDOR ===\n");
       else printf("\n");
    printf("Jogador 3) V: %3d E: %3d D: %3d P: %3d", vit3, emp3, der3, 3*vit3 + emp3);
    if (maior == p3)
       printf(" === VENCEDOR ===\n");
       else printf("\n");
    printf("Jogador 4) V: %3d E: %3d D: %3d P: %3d", vit4, emp4, der4, 3*vit4 + emp4);
    if (maior == p4)
       printf(" === VENCEDOR ===\n");
       else printf("\n");
    printf("Jogador 5) V: %3d E: %3d D: %3d P: %3d", vit5, emp5, der5, 3*vit5 + emp5);
    if (maior == p5)
       printf(" === VENCEDOR ===\n");
       else printf("\n");
    printf("Jogador 6) V: %3d E: %3d D: %3d P: %3d", vit6, emp6, der6, 3*vit6 + emp6);
    if (maior == p6)
       printf(" === VENCEDOR ===\n");
       else printf("\n");
    printf("Jogador 7) V: %3d E: %3d D: %3d P: %3d", vit7, emp7, der7, 3*vit7 + emp7);
    if (maior == p7)
       printf(" === VENCEDOR ===\n");
       else printf("\n");
Aparentemente o código está funcionando, dando resultados corretos. Mas não parece ser a melhor forma, ou a mais otimizada, se é que me entende.

Gostaria de saber se tem alguma maneira mais simples/compacta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se não pode usar vetor o código vai ficar grande msm.

Sei lá, pode usar estrutura de dados?

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.