Jump to content
Fórum Script Brasil
  • 0

Algoritimo bolao auxilio


Question

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 to post
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      148735
    • Total Posts
      644602
×
×
  • Create New...