Funções de E/S, AJUSTES NA ESPECIFICAÇÃO e dicas

Funções de E/S, AJUSTES NA ESPECIFICAÇÃO e dicas

por Marco Dimas Gubitoso -
Número de respostas: 10
Já coloquei no ar as funções, são bem simples.

O Ringue já está funcionando, só falta um detalhe (importante) e talvez algumas firulas.

Para saber se seu programa é par ou ímpar faça o seguinte teste na função main, que deve ser declarada assim:

int main(int ac, char **av)

Para saber se é par, verifique se ac é maior do que 1:

if (ac > 1) /* é par */

A primeira coisa que você deve fazer, depois de gerar ou escolher a matriz com que vai jogar, é imprimir o nome do seu time em uma linha e em seguida sua matriz. Isso é feito pela função

MandaMatriz(<seu nome>,<sua matriz>)


Depois receba a matriz do adversário, usando RecebeMatriz.

Depois disso você deve saber quando é sua vez de jogar ou de receber. Os programas que mandarem jogadas inválidas perderão a partida imediatamente, mas seguirão no campeonato.

O mesmo acontecerá se tentar receber quando tiver que enviar. Se entrar em knock-out, mande uma jogada inválida, como -1 -1.

Boa sorte e não se esqueçam das pipocas.

PS: As notas da prova estão no ar desde sábado, para quem não notou.


Em resposta à Marco Dimas Gubitoso

Re: Funções de E/S, AJUSTES NA ESPECIFICAÇÃO e dicas

por Felipe de Souza Domingues -
professor, o q seria esse **av????
Em resposta à Felipe de Souza Domingues

Re: Funções de E/S, AJUSTES NA ESPECIFICAÇÃO e dicas

por Marco Dimas Gubitoso -
É um ponteiro para um vetor de strings, que contém as opções de linha de comando. O primeiro parâmetro, ac, indica o tamanho do vetor
Em resposta à Marco Dimas Gubitoso

Re: Funções de E/S, AJUSTES NA ESPECIFICAÇÃO e dicas

por Patricia Belletati -
Professor, nao entendi como funciona o if (ac >1)...
devemos ter um scanf para ler o valor de ac?

Devemos simplesmente copiar o que vc escreveu no nosso codigo?

obrigada
Em resposta à Patricia Belletati

Re: Funções de E/S, AJUSTES NA ESPECIFICAÇÃO e dicas

por guilherme oliveira -
Tambem nao entendi esse ac. Nao precisamos mais somar a posicao (3,3) de cada matriz?


Em resposta à guilherme oliveira

Re: Funções de E/S, AJUSTES NA ESPECIFICAÇÃO e dicas

por Caio Braz -
Olá!

Então, o ac é um número que foi passado como "parâmetro" da função main, isto é, quando o programa foi inciado.

Não é necessario nenhum scanf no ac, ele ja é um numero (na verdade ele é o numero de argumentos passados quando o programa é inicializado)

As funções disponibilizadas pelo professor não devem alterar o jeito que voces estão fazendo o ep.
Em resposta à Caio Braz

Re: Funções de E/S, AJUSTES NA ESPECIFICAÇÃO e dicas

por Patricia Belletati -

Professor!

acho q a funçao RecebeMatriz esta errada!!

void RecebeMatriz(int mat[4][4])
{
  int i, j;

  for (j=1; j < 4; j++);
 scanf("%d ", &mat[0][j]);

  for (i=1;i<4;i++)
 for (j=0; j < 4; j++)
   scanf("%d ", &mat[i][j]);
}

existe o ponto e vírgula depois do primeiro for??

Outra coisa, precisamos usar ponteiros no RecebeJogada? Nós mandamos um inteiro e a pessoa recebe um ponteiro? é isso mesmo?

Em resposta à Patricia Belletati

Re: Funções de E/S, AJUSTES NA ESPECIFICAÇÃO e dicas

por Marco Dimas Gubitoso -
De fato, NÃO existe o ; no final do primeiro for, foi erro de digitação.

Você precisa usar ponteiros no RecebeJogada para que a função consiga lhe devolver os valores
Em resposta à Marco Dimas Gubitoso

Re: Funções de E/S, AJUSTES NA ESPECIFICAÇÃO e dicas

por Patricia Belletati -

Outra coisa professor...

Na funçao RecebeJogada:

void RecebeJogada(int *x, int *y)
{
  scanf("%d %d\n", x,y);
}

quando deixo o \n dentro do scanf, o meu pc fica esperando outro valor, mas se eu tirar, ele funciona normalmente... pq?

por ultimo, gostaria de confirmar se podemos editar as funçoes de entrada e saída para podermos visualizar melhor o jogo

Ex: printf("\n"); para aparecer uma matriz e nao varios numero alinhados...