Ir ao conteúdo

Posts recomendados

Postado

Olá, pessoal, tudo bem ? Estou com muita dúvida em uma questão

A questão é a seguinte:
Um campeonato estadual de futebol possui 12 rodadas e você foi chamado para desenvolver um programa C que
calcula os pontos obtidos por um determinado time, bem como o número de vitórias, derrotas e empates.
Para o desenvolvimento do programa considere os vetores abaixo:
int gp[ ] = {3, 2, 1, 0, 2, 4, 1, 0, 0, 1, 0, 1};
int gc[ ] = {0, 2, 0, 0, 2, 1, 1, 0, 2, 2, 0, 2};
O vetor gp (gols pró) armazena a quantidade de gols feitos pelo time avaliado em cada uma das 12 partidas,
enquanto que o vetor gc (gols contra) armazena a quantidade de gols sofridos pelo time em cada uma das partidas.
Por exemplo, na posição 0 do vetor gp tem-se o valor 3 e no vetor gc tem-se o valor 0, portanto, o placar foi de 3x0
favorável ao time que está sendo avaliado.
O programa deverá percorrer os vetores para calcular o total de pontos feito pelo time durante o campeonato,
sabendo que: vitória vale 3 pontos, empate vale 1 ponto e derrota não vale ponto algum.
Ao final do programa, exibir o total de pontos conquistados pelo time e exibir a quantidade de vitórias, derrotas e
empates.
Faça uma função, denominada pontos, que recebe como entrada duas variáveis representando cada posição dos
vetores e retorna o total de pontos obtido pelo time.
int pontos ( int golsfeito, int golstomado)

Desenvolvi o código para solucionar essa questão:
 

#include<stdio.h>
int pontos(int golsfeito, int golstomado){
    int valor;
    int i;    
   if(golsfeito>golstomado){
       valor=3;
       
       return valor;
   }
   if(golsfeito=golstomado){
       valor=1;
       return valor;
   }
   if(golsfeito<golstomado){
       valor=0;
       return valor;
   }
}

int main(){
    int gp[12] = {3, 2, 1, 0, 2, 4, 1, 0, 0, 1, 0, 1};
    int gc[12] = {0, 2, 0, 0, 2, 1, 1, 0, 2, 2, 0, 2};
    int x,y,z,a;
    int val;

    int result ;
    for(x=0;x<12;x++){    
     val=pontos(gp[x],gc[x]);
printf("\n %d= %d",x+1,val);
       }

    }



O caminho está certo, mas não consigo contabilizar a derrota, onde estou errando ?

Postado

@pabrul Na função você estava não estava comparando com "==",

 

int pontos(int golsfeito, int golstomado){
  int valor=0;
   if(golsfeito>golstomado){
       valor=3;
   }else if(golsfeito==golstomado){
       valor=1;
   }
  return valor;
}

 

Para contabilizar os outros valores é só usar a mesma lógica da função no for.

 

if(gp[x]>gc[x])
 v++;
else if(gp[x]==gc[x])
 e++;
else
 d++;

 

  • Curtir 1
Postado

@Midori Muito obrigado por responder, mas eu gostaria que retornasse o valor da derrota, e isso eu não estou conseguindo. Fiz a alteração e nada...

Postado

@pabrul Pode ser assim...

 

int main(){
    int gp[12] = {3, 2, 1, 0, 2, 4, 1, 0, 0, 1, 0, 1};
    int gc[12] = {0, 2, 0, 0, 2, 1, 1, 0, 2, 2, 0, 2};
    int x,y,z,a;
    int val, derrota=0;

    int result;
    for(x=0;x<12;x++){    
        if(gp[x]<gc[x]) derrota++;
        val=pontos(gp[x],gc[x]);
        printf("\n %d= %d",x+1,val);
    }
    printf("Derrota = %d\n", derrota);
    return 0;
}

 

  • Curtir 1
Postado

@Midori Era problema do meu compilador, está rodando corretamente, obrigado novamente <3, tem uma parte da questão que ele pede pra por a quantidade de vitorias e derrotas e empate, como chamo esses dados e imprimo essas infos? 

  • Curtir 1
Postado
2 horas atrás, pabrul disse:

como chamo esses dados e imprimo essas infos? 

cria 2 loops fica bom

adicionado 11 minutos depois

olha esse exemplo que você pode implementar

#include<stdio.h>

int main(){
	int i,ponto=0,vitoria=0,derrota=0,empate=0;
    int gp[12] = {3, 2, 1, 0, 2, 4, 1, 0, 0, 1, 0, 1};
    int gc[12] = {0, 2, 0, 0, 2, 1, 1, 0, 2, 2, 0, 2};
    for (i=0;i<12;i++){
    	
    	if (gp[i]>gc[i]){
    		ponto=ponto+3;
    		vitoria=vitoria+1;
		}
		else if(gp[i]<gc[i]){
			ponto=ponto+0;
    		derrota=derrota+1;
		}
		else{
			ponto=ponto+1;
			empate=empate+1;
		}
    	
	}
	
    printf ("o flamengo fez %d pontos.",ponto);
    printf ("o flamengo venceu %d jogos.",vitoria);
    printf ("o flamengo perdeu %d jogos.",derrota);
    printf ("o flamengo empatou %d jogos.",empate);
	
}
    

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 comunidades 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

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!