• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

ordepavr

Ordenar valores

7 mensagens neste tópico

Olá, eu queria fazer um programa em C em que o utilizador insere X valores e depois ele ordena, por exemplo:

o utilizador insere

1

3

4

2

5

e o programa mostra

1

2

3

4

5

isto usando vectores.

Se alguem me puder ajudar agradeço :)

cumps. Pedro Lopes

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Procura no google por QuickSort, ou por BubbleSort, ou, genericamente, "Sorting Algorithm". É o que procuras.

Basicamente, tens que ir pôr os valores que o utilizador introduz num vector (acho eu) e depois percorrer o vector mudando de sítio os valores com base em comparações.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ideia base vais ler 5 numeros, entao, metes dentro de uma estrutura for, a ler os 5 numeros, depois, podes utilizar um funcao, onde passas o vector na função, e podes utilizar um daqueles algoritmos.

Há exemplos dos algorimtos na wikipedia, em várias linguagem, dá uma olhadela...

Cumps...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

vai ao wikipedia e procura la codigo de um bublesort ou de um quicksort mas tenta perceber os algoritmos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Procura antes por Insertion Sort, para o teu caso é capaz de ser a melhor opção já que é muito simples...

Basicamente ao inserires, já irás estar a inserir de uma forma ordenada. Quando o utilizador já tiver introduzido todos os números o teu vector já estará ordenado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens 3 métodos:

Selecção

Bubblesort

Inserção

O de selecção consiste em procurares o maior número da tabela e pô-lo na última posição. Á medida que fazes isto tens que ir diminuindo a tabela de modo a excluir os maiores que já puseste para o fim.

O bubblesort consiste em comparar com valor vizinho (do lado direito), se for maior maior trocas as posições. Tens que percorrer a tabela várias vezes e quando não houver nenhuma troca é porque já está ordenado.

O de inserção já não sei bem, tens que googlar. ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

fiz este codigo (made in windows ) rapidinho antes de ir para a escola, so para veres e tirares umas ideias... O utilizador insere 5 numeros eles sao testados e postos por ordem

#include <stdio.h>

int main()
{
int a=5;
int b=0;
int pos=0;
int arr[5];
int final[5];

while(b<a)
{
printf("insira o valor %d: ", b);
scanf("%d", &arr[b]);
b++;
}
b=0;
a=1;
while(b!=5)
{
         while(a!=5)
         {
               if(arr[b]>arr[a])
               {
                               pos++;                                
               }
               a++;     
         }
final[pos]=arr[b];
b++; 
pos=0;
a=0;     
}

while(a!=5)
{
printf("%d\n", final[a]);
a++;         
}
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora