-
Posts
3 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por João Vitor Melo Machado
-
-
Opa, valeu! Mas pode deixar, vou apagar esse post, já achei o problema!
-
Boa tarde pessoal! Sou novo na linguagem C, e estava tentando criar um jogo simples, que gerasse 10 perguntas matemáticas aleatórias para o jogador, que teria que acertar com o menor número de tentativas possível. Notem que o programa ainda está em fase de desenvolvimento, então com certeza ainda há vários detalhes que faltam. Eu consegui criar um código pra gerar 10 números aleatórios que não se repetissem, porém, estou tendo dificuldade na parte de mostrar as perguntas pro usuário. No lugar das perguntas aparece uns caracteres aleatórios. Se alguém pudesse me dar uma ajuda ficaria muito grato! Segue o código (se preocupem com as partes em negrito):
#include <stdio.h> #include <stdlib.h> #include <time.h> #include <string.h> #include <conio.h> #include <locale.h> int perguntar (int x) { char p[100]; int r; if (x = 1) { p[100] = 'Quanto é 2 + 2?'; r = 4; } else if (x = 2) { p[100] = 'Quanto é 40 / 5?'; r = 8; } else if (x = 3) { p[100] = 'Quanto é 7*2'; r = 14; } else if (x = 4) { p[100] = 'Quanto é 200 + 45 - 100?'; r = 145; } else if (x = 5) { p[100] = 'Quanto é 90 * 9?'; r = 810; } else if (x = 6) { p[100] = 'Quanto é 13 + 57?'; r = 70; } else if (x = 7) { p[100] = 'Quanto é 4 * 6?'; r = 24; } else if (x = 8) { p[100] = 'Quanto é 800 / 8?'; r = 100; } else if (x = 9) { p[100] = 'Quanto é 32 / 8?'; r = 4; } else if (x = 10) { p[100] = 'Quanto é 23 + 50?'; r = 73; } printf ("\t\n%s", p); return r; } int main() { setlocale(LC_ALL, "Portuguese"); printf ("\n\tBem vindo ao jogo! Vamos selecionar suas perguntas ao acaso: \t\n\n"); system("pause"); int n=10, i=0, v, r, resposta, acerto=0, tentativa=0; //n é o número de int num[n]; n = n - 1; srand (time(NULL)); for ( ; i<=n; i++) { // enquanto posição for menor que posição final, adicione 1 à posição num = 1 + (rand() % 10); // Pega um valor aleatório e guarda ele na atual posição (i) for (v=i - 1;v>=0;v--) { // Verificação: v = posição atual - 1 (posição anterior). Enquanto v for maior ou igual à // 0, ou seja, posição inicial, subtrai 1 de v. Assim verificarei todas as posições anteriores para garantir que não // haja valor igual! do { if (num[v] == num) { // Se o valor em uma das posições anteriores for igual ao valor da posição atual... do { num = 1 + (rand() % 10); } while (num[v] == num); v = i - 1; } } while (num[v] == num); } } for (i=0 ;i<=n; ++i) { resposta = perguntar(num); scanf ("%d", &r); if (r == resposta) { printf ("\n\tParabéns, você acertou!!!"); acerto++; } else { printf ("\n\tá não! Você errou..."); } tentativa++; printf ("\n\n\n\tAperte qualquer tecla para continuar!"); getch(); system ("cls"); } }
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
Problema com um programa
em C/C#/C++
Postado
Valeu, cara. Uns erros bem bobos, realmente. A maior parte foi por que me confundi, mas o strcpy eu me informei foi agora. Obrigado pela atenção!