Ir ao conteúdo

Posts recomendados

Postado

preciso de ajuda pessoal

 

Crie uma função    que retorna, através de sorteio, um número de 1 até 6. Use a função e lance o dado mil vezes. Conte quantas vezes cada número saiu. Imprima a porcentagem de vezes que cada número foi sorteado.

 

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>// necessário p/ as funções rand() e srand()

#include<time.h>//necessário p/ função time()
int main(void)
{
  int i ;

  printf("Gerando 6 valores aleatorios:\n\n");


  srand(time(NULL));

  for (i=0; i < 6; i++)
  {

    printf("%d ", 1 +rand() % 6);


  }


  getch();
  return 0;
}

  • Membro VIP
Postado

Boa noite. Qual a dúvida? 

 

Olhando seu código, acho que você não entendeu o que o anunciado pede. Não é pra você fazer 6 sorteios. É pra você fazer 1000 sorteios. Logo, tem que corrigir esse FOR.

Os sorteios só podem sair números de 1 a 6, como um dado. Então você tem que "dizer" para o RAND quais números ele pode sortear (parece OK). Esse printf não é aí, é só no final, depois dos 1000 sorteios.

Você vai precisar fazer um contador para cada número ( de 1 a 6) para saber quantos de cada foram sorteados. Só no final que você vai mostrar um por um.

Postado

@Math.Pi eu não consegui fazer a parte de printar na tela quantas vezes o numero do dado se repetiria por exemplo, eu fiquei editando esqueci de deixar 1000

  • Membro VIP
Postado

printar ou imprimir? O resultado só tem que aparecer no final do programa. Assim:

 

Número 1 apareceu x vezes
Número 2 apareceu x vezes
Número 3 apareceu x vezes
Número 4 apareceu x vezes
Número 5 apareceu x vezes
Número 6 apareceu x vezes

 

Postado

Pelo o que eu entendi você tem que colocar isso em uma função, dessa maneira

#include <stdio.h>      /* Necessario para usar as funções printf, scanf, getchar ... */
#include <stdlib.h>     // necessário p/ as funções rand() e srand()
#include <time.h>       //necessário p/ função time()

/* Faz uma função que retorna de 1 a 6 */
int GeraNumeros1a6(void)
{
    int numero;
    
    numero = rand()%6;      /* Gera um numero de 0 até 6 */
    if (numero < 6)         /* Acrecenta 1 se caso o numero for menor do que 6 */
    {
        return(numero+1);
    }

    return(numero);         /* Só retorna o numero */
}


int main(void)
{
    int contador;

    printf("Gerando 6 valores aleatorios:\n\n");

    srand(time(NULL));
    for (contador = 0; contador < 6; contador++)
    {
        printf("%d ", GeraNumeros1a6());
    }

    getchar();      /* Pausa o programa */
    return 0;
} 

Depois é só contar quantas vezes cada numero aparece.

  • Curtir 1
Postado

@kgin  tem q jogar o dado mil vezes. Contar quantas vezes cada número saiu e Imprimie a porcentagem de vezes que cada número foi sorteado.

  • Membro VIP
Postado

@907467 A maior parte está pronta aí em cima. Se são 1000 jogadas, seu FOR vai ser de 1 a 1000. Se são 10, você vai fazer de 1 a 10, não interessa a quantidade.

Agora tu tem que fazer seu FOR com a quantidade de jogadas e fazer as variáveis para os contadores. Uma variável pra cada lado do dado. Pra saber onde contar, use uma função ESCOLHA (switch case) ou uma função SE (if else).

 

Se você não consegue fazer esse contador, sugiro praticar em um exercício mais fácil, como por exemplo (Digite 10 idades e conte quantas são maiores ou iguais a 18 e quantas são menores). Isso vai usar 2 contadores simples, com um laço de repetição e um if else.

  • Curtir 2
Postado

@907467 Você pode usar um vetor para armazenar a quantidade, p.ex,

int vetor[6] = {0};

 

E no loop dos lances incremente o vetor no índice representado pelo número do retorno da função,

vetor[numero() - 1] += 1;

 

Aí no loop que mostra a porcentagem pegue as quantidades armazenadas no vetor,

float porcentagem = vetor[i - 1]/1000.0 * 100;

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!