Jump to content

Ordenar valores


ordepavr
 Share

Recommended Posts

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

"Programming is like sex: one mistake and you're providing support for a lifetime.""A exigência conduz à excelência"

Link to comment
Share on other 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.

"Give a man a fish and he will eat for a day; Teach a man to fish and he will eat for a lifetime. The moral? READ THE MANUAL !"

Sign on a computer system consultant's desk

Link to comment
Share on other 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. 😉

Link to comment
Share on other 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++;         
}
}
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.