Ir para conteúdo

Arquivado

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

Alasca

Programa C - Campeonato de Futebol - estrutura de controle e repetição

Recommended Posts

Olá

 

Estou tentando escrever um programa em C para obter o numero de pontos P de três times em um campeonato de futebol, de acordo com a expressao a seguir:

P = 5GP - GN + 3VF + 2VC + E

 

Nessa formula, GP é o numero de gols positivos, GN é o numero de gols tomados, VF é o numero de vitorias fora de casa, você é o numero de vitorias em casa e E é o numero de empates. Essa parte eu consegui fazer, segue o código:

#include<stdio.h>

int main()
{
    int time, gp, gn, vf, você, e, p;




    for(time = 1; time <= 3; time++)
    {
        printf("Time: %d\n", time);
        printf("Digite o numero de gols positivos: ");
        scanf("%d", &gp);
        printf("Digite o numero de gols tomados: ");
        scanf("%d", &gn);
        printf("Digite o numero de vitorias fora de casa: ");
        scanf("%d", &vf);
        printf("Digite o numero de vitorias em casa: ");
        scanf("%d", &você);
        printf("Digite o numero de empates: ");
        scanf("%d", &e);
        p = (5*gp - gn + 3*vf + 2*você + e);
        printf("Numero de pontos do time %d = %d\n\n", time, p);
    }


}

 

Mas no final, o programa deve mostrar, de acordo com o numero de pontos obtidos por um time, o campeão e o vice-campeão do campeonato. Essa parte eu estou em dúvida de como posso fazer. Se alguém puder ajudar agradeço muito.

 

Obs: Não devo utilizar vetor, apenas estruturas de condição e de repetição.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiramente, você deve criar três variáveis diferentes para a quantidade de pontos no total, pois no final da execução, se colocar um printf("%d", p); ele vai mostrar os ponto do time 3, os outros serão apagados.

Após isso, um estrutura de if-else deve resolver. Em suma, o programa ficaria assim:

#include<stdio.h>

int main()
{
    int time, gp, gn, vf, você, e, p1, p2, p3, primeiro, segundo; //criada três varíaveis diferentes para três times diferentes
                                                                  //e outras duas varíaveis para definir as posições dos times

    for(time = 1; time <= 3; time++)
    {
        printf("Time: %d\n", time);
        printf("Digite o numero de gols positivos: ");
        scanf("%d", &gp);
        printf("Digite o numero de gols tomados: ");
        scanf("%d", &gn);
        printf("Digite o numero de vitorias fora de casa: ");
        scanf("%d", &vf);
        printf("Digite o numero de vitorias em casa: ");
        scanf("%d", &você);
        printf("Digite o numero de empates: ");
        scanf("%d", &e);
        switch(time) //esse switch avalia a varíavel time, se você também não puder
        {               //usa-lo, use uma cadeia de if's e else's
            case 1:p1 = (5*gp - gn + 3*vf + 2*você + e);
                   printf("Numero de pontos do time %d = %d\n\n", time, p1);
                break;
            case 2:p2 = (5*gp - gn + 3*vf + 2*você + e);
                   printf("Numero de pontos do time %d = %d\n\n", time, p2);
                break;
            case 3:p3 = (5*gp - gn + 3*vf + 2*você + e);
                   printf("Numero de pontos do time %d = %d\n\n", time, p3);
                break;
            default:break;
        }
    }

    if(p1>p2)
        primeiro=1;
    else
        primeiro=2;
    
    if(p3>primeiro)
        primeiro=3;
    
    if(primeiro==p1)
        if(p2>p3)
            segundo=2;
        else
            segundo=3;
    
    if(primeiro==p2)
        if(p1>p3)
            segundo=1;
        else
            segundo=3;
    
    if(primeiro==p3)
        if(p2>p1)
            segundo=2;
        else
            segundo=1;
            
    printf("\n\n\tO campeao foi o time %d e o vice-campeao foi o time %d!\n", primeiro, segundo);

    return 0;
}

Esse foi o que eu pude fazer só usando estruturas de condição es repetição.

Boa sorte.

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.