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");
}
}