Ir ao conteúdo
  • Cadastre-se

C Sortear N numeros e mostrar o 5 maiores


Posts recomendados

opa galera, sou iniciante em programação, e estou tentando resolver umas questões no the huxley.

 

Travei nessa onde só consegui gerar os números, mas já na hora de pegar os maiores não da certo, podem ajudar?

 

 

http://thehuxley.com/problem/868?locale=pt_BR

image.thumb.png.9da040e6d65bc2f39581cf00af07cdc6.png

 

meu código até agora está assim:

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>

int main(void)
{
  int i , N=0, D;
  float maior1=0, maior2=0, maior3=0, maior4=0, maior5=0;


/* gerando valores aleatórios*/
    for (i = 0; i < 10; i++)
  {
    printf("%d ", rand() % 100);

  }
     if(N > maior1){
            if(maior1> maior2){
                maior2=maior1;
            }
            maior1=N;
        }
        if(maior1>=maior2 && N != maior1){
            if(N > maior2){
                maior2=N;
            }
        }



   printf("\n%.0f\n", maior1);
     printf("\n%.0f\n", maior2);



  return 0;
}

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

Olá !

Vi que não está armazenando os números.

Pense na possibilidade de utilizar um vetor para guardar os números gerados aleatoriamente.

Vi, também que no problema, pede-se que a quantidade de números a ser gerado deve ser informado pelo usuário através de "n". Depois que armazenar os números gerados, você pode usar um for dentro do outro para verificar os maiores entre eles e printar na tela.

 

OBS: Não esqueça de levar em consideração o fato de que, conforme descrito no enunciado, deve-se sortear um número 'D' (sugiro de 0 a 9) e enumerar os maiores números alocados neste vetor que terminem com 'D'.

 

Você tem que identificar dezena, centena e unidade.

 

Abaixo, seguem algumas dicas de código:

gerando números aleatórios através de seed / armazenando em um vetor.

#include<stdlib.h>
#include<time.h>
#include<stdio.h>
  
int main()
{

  int n, i;
  srand(time(NULL));
  
  printf("Entre com a quantidade de números que deseja gerar aleatoriamente: ");
  scanf("%d", &n);
  
  int vet[n];
  
  for(i=0; i<n; i++)
  {
 	vet[i]= rand()%100; //gerando numeros aleatórios até 100 
 	printf("%d ", vet[i]); 	//esta linha é apenas para debbugar o código
  }
} 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Arthur Rodrigues Passos      você pode usar vetores para armazenar os números gerados e depois organizar em ordem crescente e imprimir os cinco maiores , que serão os que estiverem no final do vetor .   então seu código com algumas modificações poderia ser assim   :

#include <stdio.h>
#include <time.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <windows.h>
int main(){
    srand(time(NULL));/* para gerar números aleatórios , senão sempre serão os mesmos */
    int i,j,num[10],aux;
    for(i=0; i<10; i++){
        num[i]=rand() % 100;
        printf("%d ", num[i]);
    }
    for(i=0; i<9; i++)  /* organizar os numeros crescente */
        for(j=i+1; j<10; j++)   {
            if( num[i] > num[j]){
                aux    = num[i] ;
                num[i] = num[j] ;
                num[j] = aux    ;
            }
        }
    printf("\n\nos cinco maiores sao -> ");
    for(j=5; j<10; j++)
        printf("%3d ",num[j]);
    printf("\n\n");
    return 0;
}

 

 

 

Link para o comentário
Compartilhar em outros sites

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!