1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[Ajuda] urgente!!

Discussão em 'Programação' iniciada por marco_g-cs, 18 de Junho de 2007. (Respostas: 1; Visualizações: 497)

  1. marco_g-cs

    marco_g-cs Power Member

    tenhu um trabalho de Fim de 10º pa fazer e tou encravado com isto!

    basicamente o programa é:

    temos uma chave de quatro numeros de 0 até 9 que o pc vai gerar , e vai ser armazenada num vector. vai ser pedido ao utilizador que insira uma chave pa tentar adivinhar qual é a chave gerada pelo pc. nos temos de ir dando pistas, dizer quantos numeros estao correctos na posiçao correcta e quantos numeros tao correctos na posiçao errada e quantos estao totalmente errados comparando com a chave gerada pelo pc. e o jugador tem 10 tentativas e o programa deve avizar o utilizador de quantas oportunidades tem para chegar a chave mestra( as 10 tentativas ).

    o erro que me dá é com os IF's! nao chega a contar quantos números certos na posição certra ,quantos números certos na posição errada e os errados .( e por isto a correr 10 vezes caso o utilizador não acerte na chave_gerada)


    tudo o que fiz ta aqui ->


    a amarelo ta a parte em que tou encravado
    a parte de fazer o ciclo correr 10 vezes e mostrar quantos numeros ha na posiçao certa



    AJUDA PF


    toda a ajuda é bem vinda!


    obrigado
    cumps
     
  2. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Pah, eu sei que sou um chato e que isto é spam, mas
    1) Não uses títulos como este. Não atraem a atenção de ninguém, e faz com que toda a gente ignore isto.
    2) Não devias usar o amarelo :x é que há quem use skins claras, e o que está a amarelo percebe-se muito mal.
    3) Esse "AJUDA PF" com letras enormes é redundante. Se colocas o post, é natural que precises de ajuda.
    4) Indentar o código dá imenso jeito, assim como usar as tags [code][/code] em vez das quotes, e em vez de colocares o local que te traz problemas a amarelo, coloca-o em itálico e bold:

    Código:
    
    #include <stdio.h>
    #include<string.h>
    #include <stdlib.h>
    #include <time.h>
    
    typedef struct
    {
        char nick[30];
        int idade;
    } dados_utilizador;
    
    typedef struct
    {
        int dia;
        char mes[12];
        int ano;
    } data;
    
    void utilizador(dados_utilizador *ptr)
    {
        printf("\n\n\n\n\n\t\t\tinsira o seu nick name -> ");
        gets(ptr->nick);
        printf("\t\t\tinsira a sua idade -> ");
        scanf("%d", ptr->idade);
    }
    
    void ler_data(data *ptr)
    {
        printf("data :\n");
        printf("dia->");
        scanf("%d", &ptr-> dia);
        printf("mes->");
        scanf(" %s", ptr-> mes);
        printf("ano->");
        scanf("%d", &ptr-> ano);
    }
    
    int gerador()
    {
        int chave;
        randomize();
        chave=random(10);
        return chave;
    }
    
    int inserxao_chave()
    {
        int chave_inserida;
        do
        {
            scanf("%d", &chave_inserida);
        } while((chave_inserida>9)||(chave_inserida<0));
    
        return chave_inserida;
    }
    
    void main()
    {
        int i, j; /* variaveis utilizadas para contadores*/
        int chave_gerada[4];
        int chave_inserida[4];
        int c_correct;
        int c_pos_incorrect;
        int c_errados;
    
        dados_utilizador jogador[1];
        data hoje[1];
        utilizador(&jogador[0]);
        ler_data(&hoje[0]);
        clrscr();
    
        /* esta parte faz com que nao haja repetiçoes de numeros no vector de numeros gerados*/
        chave_gerada[0]= gerador();
    
        do
        {
            chave_gerada[1]= gerador();
        } while(chave_gerada[1]==chave_gerada[0]);
    
        do
        {
            chave_gerada[2]= gerador();
        } while((chave_gerada[2]==chave_gerada[0])||(chave_gerada[2]==chave_gerada[1]));
    
        do
        {
            chave_gerada[3]= gerador();
        } while((chave_gerada[3]==chave_gerada[0])||(chave_gerada[3]==chave_gerada[1])||(chave_gerada[3]==chave_gerada[2]));
    
        clrscr();
    
        for(i=0;i<4;i++)
            printf("%d", chave_gerada[i]);
    
        /* esta parte acaba aqui */
    [I]
    [B]     for(i=0;i<4;i++) /*este ciclo faz com que sejam inseridos 4 numeros*/
            chave_inserida[ i]=inserxao_chave();
    
        if((chave_inserida[0]==chave_gerada[0])&&(chave_inserida[1]==chave_gerada[1])&&(chave_inserida[2]==chave_gerada[2])&&(chave_inserida[3]==chave_gerada[3]))
            printf(" Ganhou o JOGO ");
        else
        {
            for(i=0;i<4;i++)
            for(j=0;j<4;j++)
            {
                c_correct=0;
                c_pos_incorrect=0;
                c_errados=0;
                if((chave_gerada[ i]==chave_inserida[j])&&(i==j))
                {
                    c_correct=c_correct+1;
                } else {
                    if((chave_gerada[ i]==chave_inserida[j])&&(i!=j))
                    {
                        c_pos_incorrect=c_pos_incorrect+1;
                    }
                    
                    if((chave_gerada[ i]!=chave_gerada[j])&&(i!=j))
                    {
                        c_errados=c_errados+1;
                    }
                }
            }
        printf("tem %d numeros corectos na posicao correcta\n", c_correct);
        printf("tem %d numeros correctos na posicao errada\n", c_pos_incorrect);
        printf("tem %d numeros incorrectos\n", c_errados);
        }
    [/B] [/I]     getch();
    }
    
    Desculpa vir cá spammar, mas é que dessa forma dificilmente alguém te irá responder.
     
    Última edição: 19 de Junho de 2007

Partilhar esta Página