GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Problemas com programa


#1

Olá galera boa tarde, estou com um pequeno problema. Meu professor de programação passou uma atividade para os alunos fazerem na qual tem que criar um programa que simula um campeonato, e o meu problema é o seguinte: no primeiro confronto no qual tô querendo simular, passo o numeros de gols de ambos os times, e na hora de somar os pontos ele soma ok, porém dei um printf dentro da função ele mostra a pontuação correta, já dentro da main dei outro printf e lá não mostra a mesma pontuação mostra como 0. Acredito que a solução seja usar ponteiros, porém não peguei esse conceito na aula. Gostaria que alguém me ajudasse com uma solução, segue o código:

#include <stdio.h>

// CONSTANTES PARA PONTUAÇÃO

#define VITORIA 3
#define EMPATE 1
#define DERROTA 0

// VARIÁVEIS GLOBAIS

// VARIÁVEIS PARA ARMAZENAR OS NOMES DOS TIMES

char time1[10] = “Palmeiras”, time2[7] = “Santos”, time3[10] = “Sao Paulo”, time4[12] = “Corinthians”, time5[6] = “Vasco”, time6[9] = “Botafogo”, time7[9] = “Flamengo”, time8[11] = “Fluminense”;

// VARIÁVEIS PARA PASSAR OS NOMES DOS TIMES PELA FUNÇÃO

char timecasa[12];
char timevisitante[12];

// VARIÁVEIS PARA ARMAZENAR O NÚMERO DE GOLS

int gtimecasa, gtimevisitante, gtime1, gtime2, gtime3, gtime4, gtime5, gtime6, gtime7, gtime8;

// VARIÁVEIS PARA ARMAZENAR OS PONTOS DOS TIMES

int ptimecasa, ptimevisitante, ptime1, ptime2, ptime3, ptime4, ptime5, ptime6, ptime7, ptime8;

// FUNÇÕES

void cabecalho();
void confrontos();
void pontuacao();
void confronto(int gtimecasa, int gtimevisitante, char timecasa[], char timevisitante[], int ptimecasa, int ptimevisitante);

// FUNÇÃO CONFRONTOS

void cabecalho(){
printf("\n\n\t********************************\n");
printf("\t * 1 TORNEIO \n");
printf("\t
*******************************\n\n");
}

void confrontos(){
printf("\n\t [1] %s X %s\n", time1, time2);
}

// FUNÇÃO CONFRONTO DOS TIMES

void confronto(int gtimecasa, int gtimevisitante, char timecasa[], char timevisitante[], int ptimecasa, int ptimevisitante){
printf("\n\t Digite o placar do time da casa: “);
scanf(”%d", &gtimecasa);
printf("\n\t Digite o placar do time visitante: “);
scanf(”%d", &gtimevisitante);
if(gtimecasa > gtimevisitante){
printf("\n\t O %s venceu!\n", timecasa);
ptimecasa = ptimecasa + VITORIA;
ptimevisitante = ptimevisitante + DERROTA;
printf("\n\t O %s tem %d pontos.", timecasa, ptimecasa);
}else if(gtimecasa < gtimevisitante){
printf("\n\t O %s venceu!\n", timevisitante);
ptimecasa = ptimecasa + DERROTA;
ptimevisitante = ptimevisitante + VITORIA;
}else{
printf("\n\t Os times empataram.\n");
ptimecasa = ptimecasa + EMPATE;
ptimevisitante = ptimevisitante + EMPATE;
}
}

// FUNÇÃO PRINCIPAL

int main(){

cabecalho();
confrontos();
confronto(gtime1, gtime2, time1, time2, ptime1, ptime2);

printf("\n\t O %s tem %d pontos.", time1, ptime1);

}


#2

Você precisa passar o endereço de memoria da variável, não somente o valor para confronto().