Ir ao conteúdo
  • Cadastre-se

Exercício - Menores números


Visitante

Posts recomendados

 

Boa noite pessoal!

 

Tô com uma dúvida em uma questão que é aparentemente simples mas já tô há horas com ela :/

O enunciado dela é esse que segue na imagem, mas resumindo é pra calcular os n menores números de um conjunto de números fornecidos pelo "usuário". A questão pede 2 valores de entrada o qual o primeiro será a quantidade de números que o "usuário" vai digitar e o segundo número é a quantidade de números na saída(Os menores números do conjunto). 

Por exemplo:

Entrada

5 3         // 5: 5 números de entrada (12345); 3: 3 numeros na saida (123)

12345

Saida

123

 

Quando coloco o meu código pra rodar, só mostra o menor de todos e não os n menores. 

- Agradeço desde já qualquer ajuda :D

 

post-719593-0-48393900-1398039197_thumb.

Link para o comentário
Compartilhar em outros sites


#include <stdio.h>

#include <iostream>

#include <string>

int main()

{

    char str[20];

    int num[20], n=0, i;

    int a, b,c,c2=0;

    int res[20];

    bool variavel=true;

    scanf("%d %d", &a, &;

    getchar();

    gets (str);

    while (str[n] != '\0') {

        num[n] = str[n] - '0';

        n++;

    }

    for(c=0; c<a; c++){

        for(c2=c+1; c2<a; c2++){

            if (num[c]>num[c2]){

                variavel= false;

                break;

            }

        }

        if(variavel){

            res[c]= num[c];

            //teste printf("*****%d*****", num[c]);

        }

        variavel=true;

    }

 /* teste

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

        printf("\t%d", num);

        printf("\n");

    }

*/

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

        printf("\t%d", res);

     }

return 0;

}

Link para o comentário
Compartilhar em outros sites

@

 

Acho que o seu maior problema, seria como encontrar os N menores números de um conjunto de números.

 

[]...

 

Uma das alternativas seria, ordenar o conjunto em ordem crescente... exemplo...

num[5] = {2,4,5,1,3}

Você quer saber os três menores números.

Um simples bubble sort resolveria...

num[5] = {1,2,3,4,5} //vetor ordenado em ordem crescente.

Depois é só imprimir os n primeiros números do vetor num.

...n = 3;for (i=0; i<n; i++){     printf("%d", num[i]);	   }

Resultado: 123

 

[]...

 

 

Entretanto, o seu exercício pede para você encontrar os N menores números do conjunto e imprimir o resto.

 

ex:

 

CK0pev2.png

 

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para 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...