Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Compilador reclamando de rand e srand...?

Oi gente, boa noite, preciso de uma ajuda... eu fiz o código igual ao do professor, mas o meu compilador GCC está reclamando das funções rand e srand. Segue meu código:

#include <stdio.h>
#include <time.h>

int main () {
    printf("******************************************\n");
    printf("* Bem vindo ao nosso jogo de adivinhação *\n");
    printf("******************************************\n");

    int segundos = time(0);
    srand(segundos); 

    int numerogrande = rand();

    int numerosecreto = numerogrande % 100;

    int chute;

    int ganhou = 0;

    int tentativas = 1;

    double pontos = 1000;

    while (ganhou == 0) {
        printf("Tentativa %d\n", tentativas);
        printf("\nDigite o seu chute: ");
        scanf("%d", &chute);
        printf("\nSeu chute foi %d\n", chute);

        if(chute < 0) {
            printf("Você não pode chutar números negativos!\n\n");
            continue;
        }

        int acertou = (chute == numerosecreto);
        int maior = (chute > numerosecreto);

        if(acertou) {
            printf("\nParabéns! Você acertou!\n");
            printf("Jogue de novo! Você é um ótimo jogador!\n\n");
            ganhou = 1;
        } else if(maior) {
                printf("Você errou... seu chute foi maior que o número secreto\n\n");
            } else {
                printf("Você errou... seu chute foi menor que o número secreto\n\n");
            }
        tentativas++;

        double pontosperdidos = (chute - numerosecreto) / 2.0; 

        if (pontosperdidos < 0) {
            pontosperdidos = pontosperdidos * -1;
        }

        pontos = pontos - pontosperdidos;
        }

    printf("Fim de jogo\n");
    printf("\nVocê acertou em %d de tentativas\n", tentativas-1);
    printf("Total de pontos: %.1f\n", pontos);
}

O compilador diz o seguinte:

  • adivinhacao.c:41:5: error: implicit declaration of function 'srand' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
  • adivinhacao.c:43:24: error: implicit declaration of function 'rand' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
  • adivinhacao.c:43:24: note: did you mean 'srand'?
  • adivinhacao.c:41:5: note: 'srand' declared here

Alguém teria alguma ideia do pq o compilador está reclamando e o que eu poderia fazer?

1 resposta
solução!

Kkkkk postei e já achei a resposta no Stack Overflow. Aparentemente a biblioteca stdlib é também necessária para usar as funções rand e srand (e não só para a função abs - como não tinha usado o abs, não tinha incluido a biblioteca no código, mas agora já inclui e o problema foi resolvido) :).