Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Mateus15987

C Erro em desenvolvimento de trabalho

Recommended Posts

Estou tendo alguns problemas para desenvolver um trabalho para a faculdade. A função que calcula a pontuação dos participantes gera valores diferentes para cada vez que o programa é executado.

São 10 participantes, e cada um pagou R$10,00 para participar. Existem 3 regras de pontuação, sendo que os participantes podem marcar de 0 a 3 pontos por jogo.

Regra 1: acertando o resultado do jogo ( time A ou time B ou empate). 1 ponto.

Regra 2: acertando o numero de gols feitos pelo time A. 1 ponto.

Regra 3: acertando o numero de gols feitos pelo time B. 1 ponto.

 

A pontuação total de cada um dos participantes é a soma dos pontos em cada jogo.

 

Ganha o jogo quem fizer uma maior pontuação. Em caso de empate, ganha quem fez maior pontos com a regra 1.No caso do empate persistir entre os participantes, todos serão considerados vencedores e o total arrecado sera divido entre os participantes empatados.

 

O que eu consegui fazer até o momento:

#include<stdio.h>
#include<string.h>
#define valor 100
#define jogos 48  
#define participantes 10

int calcularpont(int g1[jogos],int g2[jogos],int ap1[jogos],int ap2[jogos], int r1[participantes], int indice)
{
    int z, contt=0, pontos=0;
    
    for(z=0;z<jogos;z++)
    {
        printf("regra1=%d\n", r1[indice]);
        if(g1[z]==g2[z] && ap1[z]==ap2[z] || g1[z]>g2[z] && ap1[z]>ap2[z] || g1[z]<g2[z] && ap1[z]<ap2[z])
        {
            pontos++;
            
            r1[indice]++;
            
        }
        
        if(g1[z]==ap1[z])
        {
            pontos++;
        }
        
        if(g2[z]==ap2[z])
        {
            pontos++;
        }
        
        contt=contt+pontos;    
        pontos=0;
    }
    return(contt);
}


int main()
{
    int i, j,w,y,maior=0,pontuacao[participantes],aposta1[jogos],aposta2[jogos],gabarito1[jogos],gabarito2[jogos],particip[participantes];
    char nomespart[participantes][30],nome[10],ind[10];
    FILE *arq;
    int contagem=0, regra1[participantes], vencedor,vencedores[participantes],r1maior;
    
    arq=fopen("resultados.txt","r");
    
    // Leitura dos resultados dos jogos
    
    for(i=0;i<jogos;i++);
    fscanf(arq,"%d %d",&gabarito1,&gabarito2);
    
    fclose(arq); 
    
    // Leitura das apostas dos participantes
    for(i=0;i<participantes;i++)
    {
        regra1=0;
        strcpy(nome,"partic");
        sprintf(ind,"%d",i+1); 
        strcat(nome,ind);
        strcat(nome,".txt");
        arq=fopen(nome,"r");
        
        fgets(nomespart,30,arq);
        printf("nome = %s\n",nomespart);
        for(j=0;j<jogos;j++)
            fscanf(arq,"%d %d",&aposta1[j],&aposta2[j]);
        
        pontuacao=calcularpont(gabarito1,gabarito2,aposta1,aposta2,regra1,i);
        
        fclose(arq);
    
    }
    
    for(w=0;w<participantes;w++)
    {
        printf("nome = %s    pontuacao=%d\n",nomespart[w],pontuacao[w]);
        if(pontuacao[w] > maior)
        {
            maior = pontuacao[w];
            vencedor = w;
            vencedores[w] = w;
            printf("vencedor = %s\n",nomespart[w]);
        }
    }
    
    for (y=0;y<participantes;y++)
    {
        if(maior==pontuacao[y])
        {
            if(regra1[y] == regra1[vencedor])//desempate pela regra 1 com mais de um vencedor.
            {
                printf("\nvencedor=%s ", regra[y]);
                vencedores[y] = y;
                contagem++;
                
            }
            else if (regra1[y] > regra1[vencedor])
            {
                maior = pontuacao[y];
                vencedor = y;
                vencedores[y] = y;
                r1maior = regra1[y];
            }
            
            
            
            printf("%s obteve a maior pontuacao com regra1=%d.\n",nomespart[y], regra1[y]);
        }
            
    }
} 

 

O placar dos jogos e as apostas dos participantes são lidos em um arquivo, que segue em anexo.

partic1.txt

partic10.txt

partic2.txt

partic3.txt

partic4.txt

partic5.txt

partic6.txt

partic7.txt

partic8.txt

partic9.txt

resultados.txt

Editado por Simon Viegas
Inserir tag CODE
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×