Ir ao conteúdo
  • Cadastre-se

C Estou com dificuldade de colocar uma matriz e uma função neste código


MateusdeDeus

Posts recomendados

#include <stdio.h> //biblioteca padrão;
#include <stdlib.h> //biblioteca padrão
#include <locale.h> 
#include <windows.h>
#include <conio.h>
#include <time.h>
 
int main(void){
    //Variáveis
    int i = 0, j = 0, numdeacertos = 0; //int i= 0 vai controlar o contador, j= 0 vai controlar os segundos em que o usuário vai ter para colocar os números, numdeacertos é o número de acertos em que o usuário vai ter;
    char c; //Inicio do jogo;
	int numeros[5];
    int respostas[5];
   
    //Comando de regionalização;
    
    setlocale(LC_ALL, "Portuguese");
    
    //Título do programa;
    
    SetConsoleTitle("Jogo da memoria simples");
   
    srand(time(NULL)); //Semente para gerar os números aleatórios;
       
    printf("\n BEM VINDO AO JOGO DA MEMÓRIA!!!\n\n");
    printf("\n================================\n");
    printf("\n REGRAS DO JOGO: \n");
    printf("\n Esta são as instruções que o jogador deve seguir: \n");
    printf("\n 1- Este programa irá gerar 5 números aleatórios entre 1 e 100.\n");
    printf("\n 2- Você deve decorar os números exibidos em 10 segundos e depois escreve-los na ordem em que foram exibidos.\n");
    printf("\n=============================================\n");
	printf("\n Para iniciar, Pressione ENTER e bom jogo! :)\n");
   
    do{
        c = getch(); //Esperar o enter do usuário
    }while (c != 13);
   
    for (i= 0; i< 5; i++){
        numeros[i] = (rand() % 99)+1; //Para armazenar os números aleatórios no vetor i, números entre 0 e 29 + 1 para gerar os números que queremos;
    }
   
    j= 10; //Número desejado para contagem dos segundos;
   
    do{
        system ("cls"); //Limpa a tela
        printf ("Decore os numeros abaixo em: %d!!!\n\n\n", j);
        j--; //Decrementação do j para que ele vire o valor antecessor dos números desejados para os segundos;
        for (i= 0; i< 5; i++){
            printf ("%d\t", numeros[i]);
        }
        Sleep (1000); //Espero um segundo e volto para o loop;
        
    }while (j> 0); //Este loop vai acontecer enquanto j for maior que 0;
   
    system ("cls"); //Limpa a tela novamente;
    printf ("Informe os números que foram exibidos: \n");
   
    for (i= 0;i< 5; i++){
        printf ("\t%d° número: ", i+1); //Primeiro número, segundo número, terceiro número, quarto número, quinto número (...);
        scanf ("%d", &respostas[i]); //Ler a resposta do usuário;
        if (respostas[i]==numeros[i]){ //Se o vetor de resposta for equivalente ao vetor de números, então o usuário acertou;
            numdeacertos++; //Acertos dos números digitados pelo usuário;;
        }
    }
   
    if (numdeacertos== 5){ //Se o usuário acertou os números pedidos, printf;
        printf ("\n\n Parabéns, sua memória é excelente! :) Veja os número exibidos:\n\n\t");
        for (i= 0;i< 5; i++){ //Realiza o mesmo loop do começo do código, para exibir o vetor dos números para o usuário;
            printf ("%d\t", numeros[i]);
        }
    }
    else //Caso contrário, printf; 
    {
        printf ("\n\n Que pena, sua memória não é muito boa!  Veja os número exibidos e tente novamente. :) :\n\n\t");
        for (i= 0;i< 5; i++){ //Mostra os números para o usuário;
            printf ("%d\t", numeros[i]);
        }
    }
    printf ("\n\n");
    system ("pause");
    return 0;
}

 

Link para o comentário
Compartilhar em outros sites

É um trabalho da faculdade, e é exigido uma função e uma matriz. Esta é minha duvida de onde colocar essas etapas, depois do código feito sem ter função e nem uma matriz, que observei que era obrigado colocar, apesar de ta funcionado bem o código.

A função vou tentar colocar após o return 0, e só declarar em cima do int main(), para o compilador perceber que tem uma função, já que ele ler de cima para baixo. São minhas primeiras aulas em C, por isso to meio na dúvida ainda.

assim: 

 int contagem (int numero[5], int resposta [5]);
 
int main(void){

.

.

.

return 0;

}

int contagem (int numero[5], int resposta [5]){
     for (int i= 0; i< 5; i++){
     }
 }

acha que da certo?

Link para o comentário
Compartilhar em outros sites

@MateusdeDeus Tudo ai dá pra transformar em função,

exemplo

void Mensagem(void)
{
  printf("\n BEM VINDO AO JOGO DA MEMÓRIA!!!\n\n");
    printf("\n================================\n");
    printf("\n REGRAS DO JOGO: \n");
    printf("\n Esta são as instruções que o jogador deve seguir: \n");
    printf("\n 1- Este programa irá gerar 5 números aleatórios entre 1 e 100.\n");
    printf("\n 2- Você deve decorar os números exibidos em 10 segundos e depois escreve-los na ordem em que foram exibidos.\n");
    printf("\n=============================================\n");
	printf("\n Para iniciar, Pressione ENTER e bom jogo! :)\n");
  	do{
        c = getch(); //Esperar o enter do usuário
    }while (c != 13);
}

na parte da matriz basta você refazer o código com uma matriz para substituir numeros[] e respostas[]

colocando assim as duas como uma só

#define NUMEROS 0
#define RESPOSTAS 1
#define T_MATRIZ_LINHAS 2
#define T_MATRIZ_COLUNAS 5

  
int main()
{
  int matriz[T_MATRIZ_LINHAS][T_MATRIZ_COLUNAS];
  int i;
  for(i=0; i<T_MATRIZ_COLUNAS; i++)
    printf("%i",matriz[NUMEROS][i]);
  return(0);
}

isso e só um código de exemplo, não sei se funciona.

Link para o comentário
Compartilhar em outros sites

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!