Ir ao conteúdo

Posts recomendados

Postado

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
Postado

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
Postado

@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;
}

 

 

 

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

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

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!