Advertisement
Drowze

06 Vetores 08 (ordenar vetores)

May 11th, 2014
283
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.28 KB | None | 0 0
  1. /*Escrever um programa para ler um vetor de “n” elementos do tipo inteiro (n <= 20) e
  2. ordenar  seus  elementos  em  ordem  decrescente.  Imprimir  o  vetor  antes  e  após  a
  3. ordenação..*/
  4.  
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #define MAX 20
  8.  
  9. void main()
  10. {
  11.     int a[MAX], aux, i=0,j=0;
  12.  
  13.     printf("Digite n elementos para o vetor A (n<=%d)\n(Para cancelar, digite um numero maior que %d\n\n",MAX,MAX);
  14.     do{
  15.         scanf("%d",&a[i]);
  16.         if(a[i]<=MAX) i++;
  17.     }while(i<=MAX);
  18.  
  19.     //for(i=0;i<MAX;i++) a[i]=rand()%100; //(pra quando estiver com preguiça de preencher o vetor haha)
  20.    
  21.     printf("Vetor digitado (antes de ser ordenado):\n");
  22.     for(i=0;i<MAX;i++) printf("a[%d] = %d\n",i+1,a[i]);
  23.  
  24.     /*"Core" do programa. Pense assim, voce começa em i e compara com os nºs seguintes.
  25.     Voce nao precisa comparar i com i, pois são o mesmo numero.
  26.     Seguindo esse raciocinio, i nao precisa ir até o final, mas o penultimo valor tem que checar com o ultimo.
  27.     Logo, i começa em 0, mas j começa em i+1. Ainda, i vai até MAX-1, mas j vai até MAX.*/
  28.  
  29.     for(i=0;i<MAX-1;i++) for(j=i+1;j<MAX;j++) if(a[i]<a[j]){
  30.                 aux=a[i];
  31.                 a[i]=a[j];
  32.                 a[j]=aux;
  33.         }
  34.    
  35.     printf("Vetor digitado (apos ser reordenado):\n");
  36.     for(i=0;i<MAX;i++) printf("A[%d] = %d\n",i+1,a[i]);
  37.  
  38.     system("pause");
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement