Ir ao conteúdo
  • Cadastre-se

Gerar número de elementos aleatoriamente, dentro do intervalo de 0 a 500.000


z9000
Ir à solução Resolvido por z9000,

Posts recomendados

Boa tarde, preciso programa que deve solicitar ao usuário o número de elementos que irá trabalhar, até no máximo 500.000. E deverá mostrar na tela a hora de entrada e de saída do laço.

Deve gerar o número de elementos escolhido pelo usuário aleatoriamente, dentro do intervalo de 0 a 500.000.

E o programa deverá mostrar na tela a hora de entrada e de saída do laço.

Calcula a soma de todos os elementos gerados aleatoriamente;
Calcula a soma de todos os elementos gerados aleatoriamente e encontrar o maior valor;
Calcula a soma de todos os elementos gerados aleatoriamente, encontrar o maior valor e o menor;

Eu o fiz dessa maneira
 

#include <stdio.h>#include <stdlib.h>#include <time.h>int main (void){    long unsigned elemento;    long unsigned valor=0;    int opcao;    long unsigned  soma = 0;    long unsigned  maior = 0;    long unsigned  menor = 500000;    long unsigned  i;    clock_t tempoInicial, tempoFinal;    double tempoGasto;    srand((unsigned)time(NULL));    printf("\nEntre com um valor no maximo de 500.000: \n");    scanf ("%llu", &elemento);    printf("Escolha uma opcao de exibicao: \n1. Soma de todos os elementos. \n2. Soma de todos os elementos e o maior valor. \n3. Soma de todos os valores, maior e menor valor.\n");    scanf ("%d", &opcao);    tempoInicial = clock();    //Come?a contar o tempo de compila??o    for(i = 1; i<=elemento; i++){        valor = (long unsigned)(rand()% 500000);        //printf("%llu \n", valor);  /*Printa o valor na que for gerado pelo random */        soma += (long unsigned)valor;        printf("Numero Encontrado: %llu \n", valor);        if(((long unsigned)valor) < menor){            menor = valor;        }        if(((long unsigned)valor) > maior){            //printf("Numero Maior Encontrado: %llu \n", maior);            maior = valor;        }        tempoFinal = clock();      //Termina de contar o tempo de compila??o        tempoGasto = (((double)(tempoFinal-tempoInicial))/CLOCKS_PER_SEC);  //Calcula o tempo gasto    }        switch (opcao){              case 1:                  printf("Soma de todos os numeros: %llu\n", soma);                  printf("\nTempo em segundos: %f\n", tempoGasto);                  break;                 case 2:              printf("Soma de todos os numeros: %llu\n", soma);              printf("Maior valor gerado: %llu\n", maior);              printf("\nTempo em segundos: %f\n", tempoGasto);              break;              case 3:              printf("Soma de todos os numeros: %llu\n", soma);              printf("Maior valor gerado: %llu\n", maior);              printf("Menor valor gerado: %llu\n", menor);              printf("\nTempo em segundos: %f\n", tempoGasto);              break;              default:              printf("Codigo invalido.\n");              }  system("pause");}


só que o maior valor gerado não passa de 32767, alguém saberia me explicar como faço para ele chegar ate o limite dos 500000. Sou novo em C e não consegui achar a solução. 
Obrigado 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!