Estou querendo fazer um programa que simule a copa do mundo, ou seja, que o usuário seja capaz de montar os grupos com os times que quiser, depois dos grupos formados, que o próprio programa monte a grade de jogos de cada grupo para que o usuário possa inserir os valores dos jogos.
Depois dos valores postados, o programa checa o número de pontos e o saldo de gols de cada time e assim monta a classificação para as oitavas de final e assim por diante.
Comecei a fazer usando estruturas, mas como estou aprendendo ainda, acho que me perdí um pouco no meu próprio raciocínio, até agora a única coisa que conseguí fazer foi relacionar as seleções aos grupos, e imprimir os jogos (de forma errada).
O que estou me perdendo é na hora de montar os jogos, criei um vetor de char de tamanho 64 (por causa dos 64 jogos da copa), usando um contador para ir adicionando os jogos na matriz, mas acaba ficando errado, como o programa abaixo:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_GRUPO 4
int main()
{
struct selecao
{
char *time[100];
int pontos;
int gols_favor;
int gols_contra;
int gols_total;
};
struct selecao grupo_a[4]; //grupo a montado
char *jogo_copa[64] = {''}; //total de jogos da copa
int i=0,j=1,h=0;
char entrada[30];
// ********************************************************************
printf("PROGRAMA COPA DO MUNDO 2010.\n");
for (i = 0;i < MAX_GRUPO;i++)
{ //GRUPO A
printf("Digite o nome da seleção pertencente ao GRUPO A.\n");
fgets(entrada,sizeof(entrada),stdin);
sscanf(entrada,"%s",&grupo_a[i].time);
}
printf("\n\n");
for (h=0;h<7;h++) // cada grupo tem 6 jogos
{
for (i=0;i<3;i++) //quantidade de jogos de modo que não repita
{
for (j=1;j<4;j++) //quantidade de adversários
{
jogo_copa[h] = grupo_a[i].time;
strcat(jogo_copa[h]," ");
strcat(jogo_copa[h],"vs");
strcat(jogo_copa[h]," ");
strcat(jogo_copa[h],grupo_a[j].time);
printf("jogo[%d] = %s\n",h,jogo_copa[h]);
h++;
}
}
}
return 0;
}
Minha lógica para montar o quadro de jogos foi a seguinte:
Usei como exemplo o Grupo A da copa:África, México, Uruguai e França.
grupo_a[0].time tem que jogar com: grupo_a[1].time
grupo_a[2].time
grupo_a[3].time
grupo_a[1].time tem que jogar com: grupo_a[2].time
grupo_a[3].time
grupo_a[2].time tem que jogar com: grupo_a[3].time
usei o contador h de 0 a 7 só pra montar os jogos do grupo a
o contador i conta de 0 a 2, serve pra pegar os times da esquerda, pegando como exemplo a descrição acima
e o contador j conta de 1 a 3, serve para associar os adversários dos primeiros times.
o printf tá saindo assim:
queria que ficasse assim:
jogo [0] = grupo_a[0].time vs grupo_a[1].time;
jogo [1] = grupo_a[0].time vs grupo_a[2].time;
jogo [2] = grupo_a[0].time vs grupo_a[3].time;
jogo [3] = grupo_a[1].time vs grupo_a[2].time;
e assim por diante.
Só queria ajuda na montagem da grade de jogos só, o resto eu me viro.
Quero fazer esse programa justamente pra aprender a mecher com estruturas.
Desculpe pelo texto longo, tentei explicar o máximo do problema para ajudar o entendimento de vocês.
Pergunta
victor_santos
Olá,este é meu primeiro post no fórum..
Estou querendo fazer um programa que simule a copa do mundo, ou seja, que o usuário seja capaz de montar os grupos com os times que quiser, depois dos grupos formados, que o próprio programa monte a grade de jogos de cada grupo para que o usuário possa inserir os valores dos jogos.
Depois dos valores postados, o programa checa o número de pontos e o saldo de gols de cada time e assim monta a classificação para as oitavas de final e assim por diante.
Comecei a fazer usando estruturas, mas como estou aprendendo ainda, acho que me perdí um pouco no meu próprio raciocínio, até agora a única coisa que conseguí fazer foi relacionar as seleções aos grupos, e imprimir os jogos (de forma errada).
O que estou me perdendo é na hora de montar os jogos, criei um vetor de char de tamanho 64 (por causa dos 64 jogos da copa), usando um contador para ir adicionando os jogos na matriz, mas acaba ficando errado, como o programa abaixo:
Minha lógica para montar o quadro de jogos foi a seguinte:
Usei como exemplo o Grupo A da copa:África, México, Uruguai e França.
grupo_a[0].time tem que jogar com: grupo_a[1].time
grupo_a[2].time
grupo_a[3].time
grupo_a[1].time tem que jogar com: grupo_a[2].time
grupo_a[3].time
grupo_a[2].time tem que jogar com: grupo_a[3].time
usei o contador h de 0 a 7 só pra montar os jogos do grupo a
o contador i conta de 0 a 2, serve pra pegar os times da esquerda, pegando como exemplo a descrição acima
e o contador j conta de 1 a 3, serve para associar os adversários dos primeiros times.
o printf tá saindo assim:
queria que ficasse assim:
jogo [0] = grupo_a[0].time vs grupo_a[1].time;
jogo [1] = grupo_a[0].time vs grupo_a[2].time;
jogo [2] = grupo_a[0].time vs grupo_a[3].time;
jogo [3] = grupo_a[1].time vs grupo_a[2].time;
e assim por diante.
Só queria ajuda na montagem da grade de jogos só, o resto eu me viro.
Quero fazer esse programa justamente pra aprender a mecher com estruturas.
Desculpe pelo texto longo, tentei explicar o máximo do problema para ajudar o entendimento de vocês.
Obrigado.
Link para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
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.