How to insert Rand into C?

Asked

Viewed 64 times

0

In portugol:

Algoritmo "semnome"
    // Linguagem e Lógica de Programação
    // Lu e Gustavo 
    // Descrição   : Aqui você descreve o que o programa faz! (função)
    // Autor(a)    : Nome do(a) aluno(a)
    // Data atual  : 27/09/2020
    Var
       // Seção de Declarações das variáveis
       Joken, Joken_at: Inteiro

Inicio
      // Seção de Comandos, procedimento, funções, operadores, etc...
      Escreval("Neste jogo você ira jogar JoKenPo contra a maquina")
      Escreval("Digite [1] para pedra")
      Escreval("Digite [2] para papel")
      Escreval("Digite [3] para tesoura")
      Leia(Joken)
      Enquanto (Joken<=0) ou (Joken>=4) faça
               Escreval("Opção inválida")
               Escreva("Digite novamente: ")
               Leia (Joken)
      Fimenquanto
      Escolha Joken
             Caso 1
                  Escreval("Você é pedra")
             Caso 2
                  Escreval("Você é papel")
             Caso 3
                  Escreval("Você é tesoura")
      Fimescolha
      Aleatorio 1, 3
      Leia(Joken_at)
      Aleatorio off
      Escolha Joken_at
             Caso 1
                  Escreval("O computador é pedra")
             Caso 2
                  Escreval("O computador é papel")
             Caso 3
                  Escreval("O computador é tesoura")
      Fimescolha
      Enquanto (Joken=Joken_at) Faça
               Escreval("O jogo empatou")
               Escreval("Para parar de jogar aperte esc")
               Escreval("Se quiser jogar novamente aperte [1] para pedra , [2] para papel ou [3] para tesoura")
               Leia(Joken)
               Enquanto (Joken<=0) ou (Joken>=4) Faça
                        Escreval ("Opção invalida")
                        Escreva ("Digite novamente: ")
                        Leia(Joken)
               Fimenquanto
               Escolha Joken
                       Caso 1
                            Escreval("Você é pedra")
                       Caso 2
                            Escreval("Você é papel")
                       Caso 3
                            Escreval("Você é tesoura")
               Fimescolha
               Aleatorio 1, 3
               Leia(Joken_at)
               Aleatorio off
               Escolha Joken_at
                       Caso 1
                            Escreval("O computador é pedra")
                       Caso 2
                            Escreval("O computador é papel")
                       Caso 3
                            Escreval("O computador é tesoura")
               Fimescolha
      Fimenquanto
      Se (((Joken=1) e (Joken_at=3)) OU ((Joken=2) e (Joken_at=1)) ou ((Joken=3) e (Joken_at=2))) Então
         Escreva("Você é o vitorioso")
      senão
      Escreva("Você perdeu")
      Fimse
Fimalgoritmo

In C:

#include <stdio.h>
#include <locale.h>
int main (){
    setlocale(LC_ALL,"Portuguese");
    int J, Ja;
    printf("Neste jogo você ira jogar JoKenPo contra a maquina \n");
    printf("Digite [1] para pedra \n");
    printf("Digite [2] para papel \n");
    printf("Digite [3] para tesoura \n");
    scanf("%d",&J);
    while ((J<=0)||(J>=4)){ 
        printf("Opção invalida \n");
        printf("Digite novamente: ");
        scanf("%d",&J);
    }
    switch(J){
        case 1: printf("Você é pedra");break;
        case 2: printf("Você é papel");break;
        case 3: printf("Você é tesoura");break;
    }
    //Aleatório
    switch(Ja){
        case 1: printf("O computador é pedra");break;
        case 2: printf("O computador é papel");break;
        case 3: printf("O computador é tesoura");break;
    }
    while (J==Ja){
        printf("O jogo empatou\n");
        printf("Para jogar novamente aperte [1] para pedra , [2] para papel ou [3] para tesoura");
        scanf("%d",&J);
        while((J<=0)||(J>=4)){
            printf("Opção inválida\n");
            printf("Digite novamente: ");
            scanf("%d",&J);
        }
        switch(J){
            case 1: printf("Você é pedra");break;
            case 2: printf("Você é papel");break;
            case 3: printf("Você é tesoura");break;
        }
        //Aleatório     
    }
    if(((J==1) && (Ja==3)) || ((J==2) && (Ja==1)) || ((J==3) && (Ja==2)))
        printf("Você é o vitorioso");
    else
        ("Você é o perdedor");  
    getch ();
    return 0;
}

The question is, how do I put the //aleatório in C, as it is in the portugol?

  • Before you ask other questions, read this

  • See an example here: https://www.cplusplus.com/reference/cstdlib/rand/

  • If one of the answers below solved your problem and there was no doubt left, choose the one you liked the most and mark it as correct/accepted by clicking on the " " that is next to it, which also marks your question as solved. If you still have any questions or would like further clarification, feel free to comment.

2 answers

0

Assuming that "Random 1, 3" means generating a random number between 1 and 3, it can be programmed in C like this:

#include <stdlib.h>
...
Ja = rand() % 3 + 1;

0

There are several ways you generate numbers randomized in the C.

First add libs to your code:

#include <stdlib.h>
#include<time.h>

Then at the beginning of the code add this line:

srand(time(NULL));

This will make the random numbers different.

when you want to generate a random number use: rand() % max + 1

Where max will be the maximum value you want to generate, in your case, max = 3;

In case you want to know more about the rand() and the srand() access this link.

If you would like to see the documentation, please visit this.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.