Ir para conteúdo

Publicidade

 Estatísticas do Fórum

  • 2 Usuários ativos

    0 membros, 2 visitantes, 0 membros anônimos

Foto
- - - - -

[Resolvido] Colocando 3 numeros em ordem crescente

Melhor Resposta Pedro Casali , 15 abril 2010 - 12:03

/*3. Faça um programa que receba três números reais e mostre-os em ordem
crescente.*/

#include <stdio.h>
main()

{
    float x, y, z;

    printf("Digite um numero:\n ");
    scanf("%f",&x);
    printf("Digite um numero:\n ");
    scanf("%f",&y);
    printf("Digite um numero:\n ");
    scanf("%f",&z);

    if (x<y&&y<z)
    {
        printf("A ordem crescente é: %2.f %2.f %2.f ", x, y, z);
    }
    else if (x<z&&z<y)
    {
        printf("A ordem crescente é: %2.f %2.f %2.f ", x, z, y);
    }
    else if (y<x&&x<z)
    {
        printf("A ordem crescente é: %2.f %2.f %2.f ", y, x, z);
    }
    else if (y<z&&z<x)
    {
        printf("A ordem crescente é: %2.f %2.f %2.f ", y, z, x);
    }
    else if (z<x&&x<y)
    {
        printf("A ordem crescente é: %2.f %2.f %2.f ", z, x, y);
    }
    else
    {
        printf("A ordem crescente é: %2.f %2.f %2.f ", z, y, x);
    }
return 0;

}
Mais simples que isso, impossivel!!
hahaha Visualizar todo o conteúdo do post

  • Por favor, faça o login para responder
35 respostas neste tópico

#1 RinaldFN

RinaldFN
  • Members
  • 503 posts

Postado 14 março 2006 - 11:06

Olá,Estou tentando fazer o seguinte algoritimo:Pegar 3 valores, e depois colocalos em ordem crescente, mas não é tão fácil como paarece.Pelo que percebi, existe 27 possibilidades. Será que terei que fazer 27 if para analizar os valores?Valeu
  • 0

Publicidade

#2 Fernando Incerti

Fernando Incerti
  • Members
  • 23 posts

Postado 15 março 2006 - 01:04

Como assim?deixa ver se entendi você tem 3 valores. ex:583e quer deixálos em ordem crescente assim?358é isso?se for é extremamente simples...insira estes itens em um array e depois de um "sort" para ordená-los...qual linguagem está usando?
  • 0

#3 NickIII

NickIII
  • Members
  • 22 posts

Postado 15 março 2006 - 08:35

Olá Pelo q entendi do seu problema, vou te aprensentar a seguinte solução. você terá q criar um vetor ou array como a maioria conhece, vou fazer em portugol, depois você analize e passe para a linguagem q está utilizando.
variáveisind, num, aux, aux2: inteiro;vetor: inteiro;aux:=100000;ind:=1;para (ind até 3) façaimprima (Digite um numero);leia(num);vetor[ind]=num;se (num<aux) entãoaux:= num;fimse;fimpara;//(nesta parte foi preenchido o vetor e já sabemos// qual é o menor elemeno agora vamos ordena-lo)ind=1;para (ind até 3) façase vetor[ind]>aux entãoaux2:= vetor[ind];vetor[ind]=aux;aux=aux2;fimse;fimpara;
Aí kr acho q deve ficar +/- assim, a idéia é essa, o algoritmo deve também ficar mais ou menos assim

Editado por quitZAUMMM, 04 maio 2010 - 10:30 .
Inclusão da tag [code]

  • 0

#4 Fernando Incerti

Fernando Incerti
  • Members
  • 23 posts

Postado 16 março 2006 - 01:37

Para véio, é muito mais simples fazer algo assim.... supomos que seja em php... porem qualquer outra linguagem tem comando para ordenar array em ordem crescente $valor = array("b","c","a"); sort($valor); pronto... $valor[0] = "a"; $valor[1] = "b"; $valor[2] = "c";

Nuoossa, vcs tão viajando meu... eu vi esse post faz uma cara e achei meio idiota responder pq era facil d+ mas dp dessas respostas... n precisa fazer nada disso cara, nd de vetor... basta fazer isso: leia(a,b,c); se(a<B) então { aux=a; a=b; b=aux } se(b<c) então { aux=b; b=c; c=aux } se(a<B) então { aux=a; a=b; b=aux } e acabou... depois disso a>b>c ... simples, você so checou se b tinha um valor maior do q a, se tinha trocou eles de lugar... faz o mesmo com b e c, e volta a fazer com a e b pq na segunda operação você pode ter trocado o valor de b...


  • 0

#5 Fernando Incerti

Fernando Incerti
  • Members
  • 23 posts

Postado 16 março 2006 - 20:26

putz... é verdade concordo com você....
  • 0

#6 ThiagoMaximus

ThiagoMaximus
  • Members
  • 3 posts

Postado 22 março 2006 - 20:05

nao intendi, algum poderia mi dizer como fazer isso no borland?
  • 0

#7 Simon Viegas

Simon Viegas
  • Members
  • 1 posts

Postado 27 março 2006 - 13:45

nao intendi, algum poderia mi dizer como fazer isso no borland?


Olá, meu nome é Simon Viegas. Faço Sistemas de Informações no Centro Universitário da Bahia-FIB em Salvador-BA.

Vamos lá, no Pascal 7.0 seria assim.


É so traduzir para a linguagem correspondente !!!

leia(a,b,c);se(a>b) então { aux=a; a=b; b=aux }se(b>c) então { aux=b; b=c; c=aux }se(a>b) então { aux=a; a=b; b=aux }
eu troquei o sinal de "<" por ">" pois estava invertida. Antes iria resultar em ordem decrescente !!!
program OrdemCrescente;var..a,b,c, aux :real; {variaveis do programa}begin..{ler os valores}..writeln('Digite o valor de "a", "b" e "c");..readln(a,b,c)..{ordenar valores (crescente de valor)}......{em portugol ==> se(a>b) então { aux=a; a=b; b=aux }}..if a>b then..begin....aux:=a; a=b; b=aux;..end;......{em portugol ==> se(b>c) então { aux=b; b=c; c=aux }}..if b>c then....begin......aux:=b; b=c; c=aux;..end;..{ordenar valores (crescente de valor)}......{em portugol ==> se(a>b) então { aux=a; a=b; b=aux }}..if a>b then....begin......aux:=a; a=b; b=aux;....end;..{exibir valores}..writeln;..writeln(' Valore em ordem: ',a,', ',b,', ',c);..readln; {para dar um "pause" antes de encerrar}end.
e se preferir pode usar procedures
program OrdemCrescenteProcedure;procedure Trocar(var x,y:real);..var aux:real..begin  aux:=x; x:=y; y:=aux;  end;var..a,b,c, aux :real; {variaveis do programa}begin..{ler os valores}..writeln('Digite o valor de "a", "b" e "c");..readln(a,b,c)..{ordenar valores (crescente de valor)}..if a>b then Trocar(a,b);..if b>c then Trocar(b,c);..if a>b then Trocar(a,b);..{exibir valores}..writeln;..writeln(' Valore em ordem: ',a,', ',b,', ',c);..readln; {para dar um "pause" antes de encerrar}end.
EU UTILIZEI "." NO INICIO DAS LINHAS SÓ PARA PODER "ENDENTAR" !!!! (Basta trocar os "." por "espacos")

Infelizmente não posso ficar verificando todo dia se houve outro post após o meu.
Gostaria que se alguem quizar fazer um comentario, que me enviasse por email tambem para me avisar e eu pode participar !!!


simonpiata@yahoo.com.br

end.





[/b]

Editado por quitZAUMMM, 04 maio 2010 - 10:31 .
Inclusão da tag [code]

  • 0

#8 Maverick_JPA

Maverick_JPA
  • Members
  • 201 posts

Postado 27 março 2006 - 17:03

Senhores...Pelo método do Array é muito mais simples...pois temos que imaginar se fosse ordenar + de 1000 numeros... não dariam por alguns metodos...Utilize a forma de array !!!
  • 0

#9 Maverick_JPA

Maverick_JPA
  • Members
  • 201 posts

Postado 30 março 2006 - 15:01

Sim tem razao... apenas 3 numeros..eu vi isso... porem estou supondo se fosse com mais algarismos !!Abs
  • 0

#10 Ðiogo

Ðiogo
  • Members
  • 1.012 posts

Postado 31 março 2006 - 07:01

Creio que terá que fazer o lance dos IFs mesmo... Exemplo... 3 7 e 8... Vai inserir as variáveis né...A, B e C... Daí faz conforme falaram mais ou menos assim... If A>B && A>C, logo o A é o maior hehe, deixa ele pro final...daí você tem que caçar entre o B e o C... If A>B && A<C, logo o A é o segundo maior, C é o maior e o B é o ultimo... Tem que usar uma lógica semelhante a essa se quiser utilizar os Ifs da vida... Bom...foi o que eu entendi hehe... http://forum.imaster...tyle_emoticons/default/thumbsup.gif Abs!
  • 0

#11 Cypher

Cypher
  • Members
  • 150 posts

Postado 21 abril 2006 - 11:54

o melhor mesmo é por uma vector... veja aqui: http://programmers.i...pic.php?p=12#12 Cypher :)
  • 0

#12 Bruno Urbieta

Bruno Urbieta

    Bruno Fernandes Urbieta

  • Members
  • 3 posts

Postado 03 julho 2006 - 13:32

Esse aqui é bom:
     se a>b OU a>c então        se b < c então          //troca b com a        senão          //troca c com a        fimse     fimse     se c < b então        //troca c com b     fimse
Explicação: Se o a for maior que b ou c, então é porque ele não é o menor. Se ele não é o menor, é porque o menor só pode ser o b ou o c. Por isso o teste "b < c". Uma vez achado o menor entre b e c, guarda-se esse valor em a, que é onde deve estar o menor. Depois, para que se tenha o intemediário em b e o maior em c, verifica-se quem é o menor entre b e c, como vemos no final do código. Os comentários "//troca" devem ser trocados pelo algoritmo de troca, que usa uma variável auxiliar (acho que todos conhecem): aux <- var1 var1 <- var2 var2 <- aux

Editado por quitZAUMMM, 04 maio 2010 - 10:32 .
Inclusão da tag [code]

  • 0

#13 Lucky

Lucky
  • Members
  • 305 posts

Postado 06 julho 2006 - 03:05

Para ordenar elementos pode usar-se uma técnica padronizada chamada "buble sort" ou seja: o método da bolha, onde os números maiores "sobem" para o final do vetor da mesma forma que bolhas sobem na água... exemplo:
program bubble;{ordena o vetor utilizando o método da bolha}varvetor : array [1..5] of integer;i, j, aux : integer;begin{leitura dos valores}for i := 1 to 5 dobeginwrite ('Informe os valores que compoem o vetor: ');readln (vetor[i]);end;{Ordenação pelo metodo da bolha}for i := 1 to 5 dofor j := i + 1 to 5 doif (vetor[i] > vetor[j]) thenbeginaux := vetor[i];vetor[i] := vetor[j];vetor[j] := aux;end;{Impressao dos valores ordenados}writeln ('os valores ordenados: ');for i := 1 to 5 dowrite (vetor[i]);readln;

  • 0

#14 Wlyster

Wlyster
  • Members
  • 1 posts

Postado 08 novembro 2006 - 23:31

:D Ai galera pra ajudar e simplificar...
se você estiver usando o C++ como linguagem o codigo e simples e vale pra quantas variaves for necessario.


// sorting/stl-sort-array.cpp - Demo STL sort of array.
#include <iostream>#include <algorithm>using namespace std; int main() {    int a[7] = {23, 1, 33, -20, 6, 6, 9};        sort(a, a+7);        for (int i=0; i<7; i++) {        cout << a[i] << " ";    }        return 0;}
Vamos a explicacao:
você precisa utilisar a funcao sort() prevista na classe <algorithm> (que é do stl). Na funçao sort() você deve passar 2 argumentos como mostrados acima. Na demostraçao acima, 'a' contem o endereço do primeiro container array, ou seja, endereco onde estava estocado o valor 23 como mostra o exemplo. O segundo argumento passado por sort() é a incrementaçao 7x o endereço do primeiro container pois a funçao sort() precisa saber em qual endereço da memoria começa e termina a array e para isso passamos o endereço do primeiro container e o endereço do container apos o ultimo, é por isso que acima você encontra +7 e nao +6.
Atençao nao é o ultimo e sim o endereço apos o ultimo container.
Espero q fico claro...

Editado por quitZAUMMM, 04 maio 2010 - 10:32 .
Inclusão da tag [code]

  • 0

#15 Briooosa

Briooosa
  • Members
  • 2 posts

Postado 12 dezembro 2006 - 17:12

boas sou novo aqui acho que para este topico,nao sei se ainda interessa,mas para tres numeros o mais facil deve ser assim:
#include<iostream.h>void decresc(int a,int b,int c);void main(){	int n1,n2,n3;cout<<"introduza 3 inteiro para colocar por ordem crescente"<<endl;cin>>n1>>n2>>n3;decresc(n1,n2,n3);void decresc(int a,int b,int c){	int aux;	if(a> b ){	aux=a; a=b; b=aux;	}	if(b>c){		aux=b; b=c; c=aux;	}	if(a> b ){		aux=a;a=b; b=aux;	}cout<<a<<b<<c<<endl;}
abraço.

Editado por quitZAUMMM, 04 maio 2010 - 10:32 .
Inclusão da tag [code]

  • 0

#16 RinaldFN

RinaldFN
  • Members
  • 503 posts

Postado 25 dezembro 2006 - 16:02

E ai pessoal beleza?? Vi que o tópico rendeu bastante.Quando eu o inicie, o intúito não era usar funções prontas para ordenar, e sim fazer no braço.A idéia também não é usar métodos de ordenação, pois como se trata de 3 números não é necessário.O idéia é criar da forma mais otimizada possível usando esteuturas de seleção.Obrigado por todas as respostas! Percebi que varios conseguiram fazer.
  • 0

#17 nosbielcs

nosbielcs
  • Members
  • 350 posts

Postado 21 janeiro 2008 - 21:55

Amigos. Segue o código em C para resolver este problema:

//Programa para inserção e ordenação de 3 números

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

int main()
{
int A, B, C, menor, medio, maior;
printf ("Entre com os valores de A, B e C\n");
scanf ("%i\n %i\n %i", &A, &B, &C);
if ((A != B ) && (A != C) && (B != C))
	{
		if ((A<= B ) && (A<= C) && (B<= C))
		{
		menor = A;
		maior = C;
		medio = B;
		printf ("%i e o menor valor.\n", menor);
		printf ("%i e o maior valor.\n", maior);
		printf ("%i e o medio valor.\n", medio);
		}
		if ((A<= B ) && (A<= C) && (C<= B ))
		{
		menor = A;
		maior = B;
		medio = C;
		printf ("%i e o menor valor.\n", menor);
		printf ("%i e o maior valor.\n", maior);
		printf ("%i e o medio valor.\n", medio);
		}
		if ((B<= A) && (B<= C) && (A<= C))
		{
		menor = B;
		maior = C;
		medio = A;
		printf ("%i e o menor valor.\n", menor);
		printf ("%i e o maior valor.\n", maior);
		printf ("%i e o medio valor.\n", medio);
		}
		if ((B<= A) && (B<= C) && (C<= A))
		{
		menor = B;
		maior = A;
		medio = C;
		printf ("%i e o menor valor.\n", menor);
		printf ("%i e o maior valor.\n", maior);
		printf ("%i e o medio valor.\n", medio);
		}
		if ((C<= A) && (C<= B ) && (B<= A))
		{
		menor = C;
		maior = A;
		medio = B;
		printf ("%i e o menor valor.\n", menor);
		printf ("%i e o maior valor.\n", maior);
		printf ("%i e o medio valor.\n", medio);
		}
		if ((C<= A) && (C<= B ) && (A<= B ))
		{
		menor = C;
		maior = B;
		medio = A;
		printf ("%i e o menor valor.\n", menor);
		printf ("%i e o maior valor.\n", maior);
		printf ("%i e o medio valor.\n", medio);
		}
	}
else
	{
	printf ("Os valores devem ser diferentes um do outro.\n");
	}
printf ("Os valores em ordem crescente sao: %i | %i | %i.\n", menor, medio, maior);
system ("PAUSE");
return (0);
}

É isso colegas.

Editado por quitZAUMMM, 04 maio 2010 - 10:34 .
Troca das tags <div> pelas tags [code]

  • 0

#18 Gustavo Rodrigues Torre

Gustavo Rodrigues Torre
  • Members
  • 426 posts

Postado 15 fevereiro 2008 - 18:00

Amigo verifique este algoritmo aqui

algoritmo "ordenar numeros"
// Função : Ordenar 3 numeros em ordem crescente
// Autor :  Gustavo Rodrigues Torre
// Data : 23/8/2007
// Seção de Declarações
var
A, B, C : inteiro
inicio
// Seção de Comandos
escreval("Digite um número: ")
leia(A)
escreval("Digite um numero: ")
leia(B)
escreval("Digite um número: ")
leia(C)

	   se (A>B) e (B>C) entao
	   escreval("Essa é a ordem crescente dos números citados: ", C, B, A)
	   senao
		 se (B>A) e (A>C) entao
		 escreval("Essa é a ordem crescente dos números citados: ", C, A, B)
	   senao
		   se (C>A) e (A>B) entao
		   escreval("Essa é a ordem crescente dos números citados: ", B, A, C)
		   senao
			 se (B>C) e (C>A) entao
			 escreval("Essa é a ordem crescente dos números citados: ", A, C, B)
			 senao
				se (A>C) e (C>B) entao
				escreval("Essa é a ordem crescente dos números citados: ", B, C, A)
				senao
					se (C>B) e (B>A) entao
					escreval("Essa é a ordem crescente dos números citados: ", A, B, C)
	   fimse
		 fimse
		   fimse
			 fimse
			   fimse
					fimse
fimalgoritmo

Volte a postar se encontrar algum erro

Abraços
  • 0

#19 turvria

turvria
  • Members
  • 1 posts

Postado 25 setembro 2008 - 14:21

Codigo em C, bem mais simples usando a logica de Se a<b<c então tudo q for: a>b ,b>c e a>c (terá q ser trocado).

vamos ao codigo:

#include <stdio.h>
void main (void)
{
	int a,b,c;
	int aux;

	printf("entre com tres numeros:");
	scanf("%d%d%d",&a,&b,&c);

	if(a>b)
	{
		aux=a;
		a=b;
		b=aux;
	}
	if(a>c)
	{
		aux=a;
		a=c;
		c=aux;
	}
	if(b>c)
	{
		aux=b;
		b=c;
		c=aux;
	}

	printf("%d%d%d", a,b,c);

}

  • 0

#20 Raul Souza Silva

Raul Souza Silva
  • Members
  • 28 posts

Postado 11 março 2009 - 13:06

Ta ai

if (a<b E a<c E b<c){
}
else if(a<b E a<c E c<b){
	aux=b;
	b=c;
	c=aux;
}
else if(b<a E b<c E a<c){
	aux=b;
	b=a;
	a=aux;
}
else if(b<a E $b<c E c<a){
	aux=a;
	a=b;
	b=c;
	c=aux;
}

else if(b<a E b<c E c$a){
	$aux=$a;
	a=c;
	c=aux;	
}
else if(c<a E $c<b E a<b){
	aux=a;
	a=c;
	c=b;
	b=aux;
}
else if(c<b E c<a E b<a){
	aux=a;
	a=c;
	c=aux;
}
Escreva A, B, C

Olá,


Estou tentando fazer o seguinte algoritimo:

Pegar 3 valores, e depois colocalos em ordem crescente, mas não é tão fácil como paarece.

Pelo que percebi, existe 27 possibilidades. Será que terei que fazer 27 if para analizar os valores?



Valeu


  • 0




Publicidade

/ins>