Ir ao conteúdo
  • Cadastre-se
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

  • 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

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





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

×