Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Josesousa

C Matriz tridimensional em C. Loteria

Recommended Posts

Olá, tudo bem?

Será que podem me ajudar num exercicio aqui. É o seguinte: 

Escreva um algoritmo que leia um vetor de 13 elementos, que é o Gabarito de um teste da loteria esportiva, contendo os valores 1(coluna 1), 2 (coluna 2) e 3 (coluna do meio). Leia, a seguir, para cada apostador, o número do seu cartão e um vetor de Respostas de 13 posições. Verifique para cada apostador  o números de acertos, comparando o vetor de Gabarito com o vetor de Respostas. Escreva o número do apostador e o número de acertos. Se o apostador tiver 13 acertos, mostrar a mensagem "Ganhador".

 

Eu consegui resolve-lo, mais pegando as respostas de apenas um apostador. Segue o codigo:

/*14. Escreva um algoritmo que leia um vetor de 13 elementos, que é o Gabarito de um teste da loteria
esportiva, contendo os valores 1(coluna 1), 2 (coluna 2) e 3 (coluna do meio). Leia, a seguir, para cada
 apostador, o número do seu cartão e um vetor de Respostas de 13 posições. Verifique para cada apostador
  o números de acertos, comparando o vetor de Gabarito com o vetor de Respostas. Escreva o número do apostador
   e o número de acertos. Se o apostador tiver 13 acertos, mostrar a mensagem "Ganhador".*/
#include <stdio.h>
#include <stdlib.h>
main (){
    int vet[13],i, j,num,res[13], cont=0, cartao;
    char voltar[5];

    printf("Informe o cartao resposta.\n");
    for(i=0;i<13;i++){
        printf("Vetor [%d]: ", i);
        scanf("%d", &vet[i]);
    }
   /* printf("Informe o numero de apostadores: ");
    scanf("%d", &num);
    for(i=0;i<num;i++){
        printf("Informe o numero do %d apostador: ", i);
        scanf("%d", &cartao);
        for(j=0;j<13;j++)
        printf("Informe o suas respostas : ");
        scanf("%d", &res[i]);
    }*/

    printf("Informe o numero do cartao do apostador: ");
    scanf("%d", &cartao);
    printf("Informe suas respostas!\n");
    for(i=0;i<13;i++){
        printf("resposta [%d]: ", i);
        scanf("%d", &res[i]);
    }

    for(i=0;i<13;i++){
        if(res[i]==vet[i])
            cont++;
    }
    if(cont!=13)
        printf("Nao tem vencedor!\n");
    if(cont==13)
        printf("O vencendor e o do cartao numero %d!\n", cartao);

system("pause");
return 0;
}

Mas eu queria saber como consegui colocar mais apostadores. E pedir a quantidade de pessoas que realizou as apostas para o usuario. 

Fiquei aqui pensando se nao e uma matriz tridimensional.

 

Segue outro codigo que estava desenvolvendo, mas parei.

#include <stdio.h>
#include <stdlib.h>
main (){
    int gab[13],tam=5, mat[tam][13];
    int i, j;
    printf("Entre com o gabarito: ");
    for(i=0;i<13;i++){
        printf("Gabarito [%d]: ", i);
        scanf("%d", &gab[i]);
    }
    printf("Informe a quantidade de pessoas que realizou a aposta: ");
    scanf("%d", &tam);
    printf("\nEntre com os valores da aposta.\nInformando o cartao e depois a rasposta.\n");
    for(i=0;i<tam;i++){
        for(j=0;j<13;j++){
            printf("Matriz [%d][%d]: ");
        scanf("%d", &mat[i][j]);




           /* if(j==0){
                printf("Informe o numero do cartao: ");
                scanf("%d", &mat[i][j]);
            }
            else{
                printf("Respostas: ");
                scanf("%d", &mat[i][j]);
            }*/
        }
    }
   /* int k=0,cont=0;
    for(i=0;i<tam;i++){
        for(j=0;j<=13;j++){
            for(k=0;k<13;k++){
                if(mat[i][j]==gab[i]&& j!=0){
                    cont++;
                }
            }
        }
    }*/


system("pause");
return 0;
}

E ai? Alguma dica para tridimensionais?

Editado por Josesousa

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

 

sys_loteria


0) Escreva um algoritmo que leia um vetor de 13 elementos, que é o Gabarito de um 
   teste da loteria esportiva. Contendo os valores 1(coluna 1), 2(coluna 2) e 
   3(coluna do meio). 
 
1) Leia, a seguir, para cada
   apostador, o número do seu cartão e um vetor de Respostas de 13 posições. 
   
2) Verifique para cada apostador
   o números de acertos, comparando o vetor de Gabarito com o vetor de Respostas. 

3) Escreva o número do apostador
   e o número de acertos. Se o apostador tiver 13 acertos, mostrar a mensagem 
   "Ganhador".

  • Aqui acima só sistematizo nosso problema, nada mais.

 

Dividir e conquistar: Boa parte dos problemas podem ser resolvidos dentro e somente na main, existem linguagens de um só método, já com relação a C nem sempre isso é uma boa ideia. Já parou para pensar o porquê de ficar tão difícil a medida que somou mais uma questão ao problema, apesar do problema não ser nada ruim, você chegou no seu dilema rápido de mais se comparada a complexidade do sistema na questão. Dentre muitas coisa ..., eu humildemente atribuo isso a falta métodos gerais: Online GDB: sys_loteria

Editado por AnsiC
Fazendo do português algo mais legível

Compartilhar este post


Link para o post
Compartilhar em outros sites

@AnsiC Minha maior duvida era em relação a quantidade de apostadores, e ao cartao do apostador. No caso voce já atribuiu valores diretos para cada apostador  e tambem ja definiu a quantidade dos mesmos.

Eu pretendia resolver o exercicio com uma matriz, inserido o cartao e as respostas nela, tanto que perguntei sobre matriz tridimensionais.

Sobre usar funções, aprendi a pouco tempo, mas estou passando a usar mais elas. Mas nao aprendir ponteirios ainda. Me parece que voce usou, não sei bem.

Se reparar o primeiro codigo que postei, eu consigo mostrar o vencedor, na qual so tem duaspossibilidade:  o único apostador ganhou ou não ganhou.

Será que com uma struct da para resolver o problema? (O professor nao explicou ainda, mas já de uma olhada na internet)

 

Valeu amigo. :)

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Foi para nós, é uma situação hipotética, o cerno do código é sua estrutura de funções; Procedimentos é tudo. Tem muito sobre matrizes e ponteiros na internet. Deixe de desculpas e aprende ponteiros.

 

 

De nada, @Josesousa

Em 21/06/2018 às 13:10, Josesousa disse:

Valeu amigo. :)

 

Editado por AnsiC
De acorda com Regra Gerais 1.2
  • Confuso 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
10 minutos atrás, AnsiC disse:

Deixe de desculpas e aprende ponteiros.

Já dei uma olhada em ponteiros, tentei resolver uns exercicios que fazia uso dele. Mas aprender na internet (difícil achar algo de qualidade) não é tão fácil assim não amigo, aprende mais demora. Não é desculpas não.

  • Haha 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
2 minutos atrás, Josesousa disse:

Já dei uma olhada em ponteiros, tentei resolver uns exercicios que fazia uso dele. Mas aprender na internet (difícil achar algo de qualidade) não é tão fácil assim não amigo, aprende mais demora. Não é desculpas não.

  • Eu sei !!! Qualquer coisa, conte com nosso fórum e desenvolva postagens sobre os temas que queria discutir, depois volte.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×