Ir para conteúdo
Fórum Script Brasil
  • 0

Algoritimo bolao auxilio


souzaoe

Pergunta

Estou tendo as seguintes dificuldades nesse algorítimo:

1 - na limpeza do buffer de memoria com o wile - na primeira pergunta com scanf ele traz uma sujeira do wiler antes de gerar a pergunta 

2 - no for if, em vez do programa verificar cada item de cada um dos 5 apostadores, ele pega logo o primeiro apostador e pontua todos os outros com a pontuação desse apostador, logo é erro no laço 

3 - ao final estou tendo dificuldade com o printf_s pois ao usar o %f ele não esta criando as duas casas decimais adequadas, pegando todas as casas decimais fica assim 100.00000000.2

segue abaixo o código agradeço o apoio para analise 

/*
("**************************************\n");
("*Exercicio 2                         *\n");
("*Aluno: Antonio Maria Feitosa Souza  *\n");
("*RU: 2445802                         *\n");
("*Logica de Programação e Algoritimo  *\n");
("*Programa: Bolão                     *\n");
("**************************************\n\n");
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
#include <conio.h>

int main(void)
{
    setlocale(LC_ALL, "Portuguese"); // Usando padrão portugues, acentos e virgulas
    // INICIANDO AS VARIAVEIS
    int ap11 = 0, ap12 = 0, ap21 = 0, ap22 = 0, ap31 = 0, ap32 = 0,
        ap41 = 0, ap42 = 0, ap51 = 0, ap52 = 0, r1 = 0, r2 = 0, pont1, pont2, pont3, pont4, pont5, pausa;
    char apost1[15], apost2[15], apost3[15], apost4[15], apost5[15], c;
    float valor1 = 0, valor2 = 0, valor3 = 0, valor4 = 0, valor5 = 0;
    // ENTRADA DE DADOS DOS APOSTADORES E DAS APOSTAS
    // APOSTADOR 1
    printf("Digite o nome do primeiro apostador:\n");
    gets_s(apost1);
    printf("Digite o placar dowhile ((c = getchar()) != '\n' && c != EOF) {} Time1: \n");
    scanf_s("%d", &ap11);
    
    printf("Digite o placar do Time2: \n");
    scanf_s("%d", &ap12);
    while ((c = getchar()) != '\n' && c != EOF) {}
    printf("Digite o valor da aposta : R$ ");
    scanf_s("%f", &valor1);
    while ((c = getchar()) != '\n' && c != EOF) {}
    // APOSTADOR 2
    printf("Digite o nome do segundo apostador:\n");
    gets_s(apost2);
    printf("Digite o placar do Time1: \n");
    scanf_s("%d", &ap21);
    while ((c = getchar()) != '\n' && c != EOF) {}
    printf("Digite o placar do Time2: \n");
    scanf_s("%d", &ap22);
    while ((c = getchar()) != '\n' && c != EOF) {}
    printf("Digite o valor da aposta : R$ ");
    scanf_s("%f", &valor2);
    while ((c = getchar()) != '\n' && c != EOF) {}
    // APOSTADOR 3
    printf("Digite o nome do terceiro apostador:\n");
    gets_s(apost3);
    printf("Digite o placar do Time1: \n");
    scanf_s("%d", &ap31);
    while ((c = getchar()) != '\n' && c != EOF) {}
    printf("Digite o placar do Time2: \n");
    scanf_s("%d", &ap32);
    while ((c = getchar()) != '\n' && c != EOF) {}
    printf("Digite o valor da aposta : R$ ");
    scanf_s("%f", &valor3);
    while ((c = getchar()) != '\n' && c != EOF) {}
    // APOSTADOR 4
    printf("Digite o nome do quarto apostador:\n");
    gets_s(apost4);
    printf("Digite o placar do Time1: \n");
    scanf_s("%d", &ap41);
    while ((c = getchar()) != '\n' && c != EOF) {}
    printf("Digite o placar do Time2: \n");
    scanf_s("%d", &ap42);
    while ((c = getchar()) != '\n' && c != EOF) {}
    printf("Digite o valor da aposta : R$ ");
    scanf_s("%f", &valor4);
    while ((c = getchar()) != '\n' && c != EOF) {}
    // APOSTADOR 5
    printf("Digite o nome do quinto apostador:\n");
    gets_s(apost5);
    printf("Digite o placar do Time1: \n");
    scanf_s("%d", &ap51);
    while ((c = getchar()) != '\n' && c != EOF) {}
    printf("Digite o placar do Time2: \n");
    scanf_s("%d", &ap52);
    while ((c = getchar()) != '\n' && c != EOF) {}
    printf("Digite o valor da aposta : R$ ");
    scanf_s("%f", &valor5);
    while ((c = getchar()) != '\n' && c != EOF) {}

    system("cls"); // LIMPANDO A TELA 

    printf("Iniciando o Bolão \n");
    printf("Informe o placar do Time1: \n");
    scanf_s("%d", &r1);
    while ((c = getchar()) != '\n' && c != EOF) {}
    printf("Informe o placar do Timew2: \n");
    scanf_s("%d", &r2);
    while ((c = getchar()) != '\n' && c != EOF) {}

    // Iniciando o processamento dos dados informados
    // VENCEDOR É O PRIMEIRO TIME
    for (int i = r1; i > r2; i--)
    {
        // NÃO ACERTOU O VENCEDOR E NEM O NUMERO DE GOLS DOS TIMES
        if (i < r2 &&((r1 != ap11 && r2 != ap12) || (r1 != ap21 && r2 != ap22) ||
            (r1 != ap31 && r2 != ap32) || (r1 != ap41 && r2 != ap42)
                || (r1 != ap51 && r2 != ap52)))
        {
            pont1 = 0;
            pont2 = 0;
            pont3 = 0;
            pont4 = 0;
            pont5 = 0;                
            
        }
        else
        {
            // NÃO ACERTOU O VENCEDOR
            if (i < r2 && ((i != ap11 && r2 == ap12) || (i != ap21 && r2 == ap22) ||
                (i != ap31 && r2 == ap32) || (i != ap41 && r2 == ap42)
                || (i != ap51 && r2 == ap52)))
            {
                pont1 = 5;
                pont2 = 5;
                pont3 = 5;
                pont4 = 5;
                pont5 = 5;
            }
            else
            {
                // NÃO ACERTOU O VENCEDOR MAIS ACERTOU O NUMERO DE GOLS DO PRIMEIRO TIME.
                if (i < r1 && ((r1 == ap11 && r2 != ap12) || (r1 != ap21 && r2 == ap22) ||
                    (r1 != ap31 && r2 == ap32) || (r1 != ap41 && r2 == ap42)
                    || (r1 != ap51 && r2 == ap52)))
                {
                    pont1 = 5;
                    pont2 = 5;
                    pont3 = 5;
                    pont4 = 5;
                    pont5 = 5;
                }
                else
                {
                    // ACERTOU O VENCEDOR MAIS NÃO ACERTOU O NUMERO DE GOLS DOS TIMES 
                    if ((r1 != ap11 && r2 != ap12) || (r1 != ap21 && r2 != ap22)
                        || (r1 != ap31 && r2 != ap32) || (r1 != ap41 && r2 != ap42)
                        || (r1 != ap51 && r2 != ap52))
                    {
                        pont1 = 10;
                        pont2 = 10;
                        pont3 = 10;
                        pont4 = 10;
                        pont5 = 10;
                    }
                    // ACERTOU O VENCEDOR E APENAS O PLACAR DO 2 TIME
                    if ((r1 == ap11 && r2 != ap12) || (r1 == ap21 && r2 != ap22)
                        || (r1 == ap31 && r2 != ap32) || (r1 == ap41 && r2 != ap42)
                        || (r1 == ap51 && r2 != ap52))
                    {
                        pont1 = 15;
                        pont2 = 15;
                        pont3 = 15;
                        pont4 = 15;
                        pont5 = 15;
                    }
                    else
                    {
                        // ACERTOU O 1 VENCEDOR E O PLACAR DOS DOIS TIMES 
                        if ((r1 == ap11 && r2 == ap12) || (r1 == ap21 && r2 == ap22) || (r1 == ap31 && r2 == ap32)
                            || (r1 == ap41 && r2 == ap42) || (r1 == ap51 && r2 == ap52))
                        {
                            pont1 = 20;
                            pont2 = 20;
                            pont3 = 20;
                            pont4 = 20;
                            pont5 = 20;
                        }
                    }
                }
            }
        }
    }
    

    // VENCEDOR É O 2 TIME 

    for (int i = r2; i > r1; i--)
        {
            // NÃO ACERTOU O VENCEDOR E NEM O NUMERO DE GOLS DOS TIMES
            if (i < r1 && ((r1 != ap11 && r2 != ap12) || (r1 != ap21 && r2 != ap22) ||
                (r1 != ap31 && r2 != ap32) || (r1 != ap41 && r2 != ap42)
                || (r1 != ap51 && r2 != ap52)))
            {
                pont1 = 0;
                pont2 = 0;
                pont3 = 0;
                pont4 = 0;
                pont5 = 0;

            }
            else
            {
                // NÃO ACERTOU O VENCEDOR
                if (i < r1 && ((i != ap12 && r2 == ap11) || (i != ap22 && r2 == ap21) ||
                    (i != ap32 && r2 == ap31) || (i != ap42 && r2 == ap41)
                    || (i != ap52 && r2 == ap51)))
                {
                    pont1 = 5;
                    pont2 = 5;
                    pont3 = 5;
                    pont4 = 5;
                    pont5 = 5;
                }
                else
                {
                    // NÃO ACERTOU O VENCEDOR MAIS ACERTOU O NUMERO DE GOLS DO PRIMEIRO TIME.
                    if (i < r1 && ((r1 == ap11 && r2 != ap12) || (r1 != ap21 && r2 == ap22) ||
                        (r1 != ap31 && r2 == ap32) || (r1 != ap41 && r2 == ap42)
                        || (r1 != ap51 && r2 == ap52)))
                    {
                        pont1 = 5;
                        pont2 = 5;
                        pont3 = 5;
                        pont4 = 5;
                        pont5 = 5;
                    }
                    else
                    {
                        // ACERTOU O VENCEDOR MAIS NÃO ACERTOU O NUMERO DE GOLS DOS TIMES 
                        if ((r1 != ap11 && r2 != ap12) || (r1 != ap21 && r2 != ap22)
                            || (r1 != ap31 && r2 != ap32) || (r1 != ap41 && r2 != ap42)
                            || (r1 != ap51 && r2 != ap52))
                        {
                            pont1 = 10;
                            pont2 = 10;
                            pont3 = 10;
                            pont4 = 10;
                            pont5 = 10;
                        }
                        // ACERTOU O VENCEDOR E APENAS O PLACAR DO PRIMEIRO TIME TIME
                        if ((r1 == ap11 && r2 != ap12) || (r1 == ap21 && r2 != ap22)
                            || (r1 == ap31 && r2 != ap32) || (r1 == ap41 && r2 != ap42)
                            || (r1 == ap51 && r2 != ap52))
                        {
                            pont1 = 15;
                            pont2 = 15;
                            pont3 = 15;
                            pont4 = 15;
                            pont5 = 15;
                        }
                        else
                        {
                            // ACERTOU O 1 VENCEDOR E O PLACAR DOS DOIS TIMES 
                            if ((r1 == ap11 && r2 == ap12) || (r1 == ap21 && r2 == ap22) || (r1 == ap31 && r2 == ap32)
                                || (r1 == ap41 && r2 == ap42) || (r1 == ap51 && r2 == ap52))
                            {
                                pont1 = 20;
                                pont2 = 20;
                                pont3 = 20;
                                pont4 = 20;
                                pont5 = 20;
                            }
                        }
                    }
                }
            }
        }

        

        // IMPRIMINDO OS RESULTADOS
    printf("Primeiro apostador:%s  *  ", apost1);
    printf("Valor da Aposto:%f.2  *  ", valor1);
    printf("Pontos obtidos:%d  *  \n\n ", pont1);
    printf("Segundo apostador:%s  *  ", apost2);
    printf("Valor da Aposto:%f.2  *  ", valor2);
    printf("Pontos obtidos:%d  *  \n\n ", pont2);
    printf("Terceiro apostador:%s  *  ", apost3);
    printf("Valor da Aposto:%f.2  *  ", valor3);
    printf("Pontos obtidos:%d  *  \n\n ", pont3);
    printf("Quarto apostador:%s  *  ", apost4);
    printf("Valor da Aposto:%f.2  *  ", valor4);
    printf("Pontos obtidos:%d  *  \n\n ", pont4);
    printf("Quinto apostador:%s  *  ", apost5);
    printf("Valor da Aposto:%f.2  *  ", valor5);
    printf("Pontos obtidos:%d  *  \n\n ", pont5);

    scanf_s("%d", &pausa);
    system("pauser");
    return 0;
}
 

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...