Advertisement
maha_kaal

Ordina vett

Jun 17th, 2012
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.76 KB | None | 0 0
  1. #include <stdio.h>
  2. #define DIM 10
  3. /**
  4. Questa funzione non fa altro che prendere in input i numeri da ordinare in modo decrescente.
  5. in input accetta 2 parametri: int* a è un puntatore mentre int dim è una variabile che indica la dimensione dell'array. E' di tipo void perché non ritorno niente e lavoro direttamente con l'array, grazie all'uso dei puntatori.
  6. int* a è un array, in quanto in C un array non è altro che un puntatore al primo elemento del array :D per cui basta indicare a[i] per accedere a tutti i suoi elementi
  7. **/
  8. void inserimento(int* a, int dim){
  9.     int i = 0;
  10.     for(i = 0; i < dim; i++){
  11.         printf("Inserire %d elemento :> ", i + 1);
  12.         scanf("%d", &a[i]) ;
  13.     }
  14. }
  15.  
  16. /**
  17. Questa è la funzione che mi ha fatto più sudare: non fa altro che prendere come prima un puntatore o più familiare array :d
  18. **/
  19.  
  20. void ordina (int *a, int dim){
  21.     int i = 0,
  22.         j = 0,
  23.         t = 0;
  24. /** Inizializzo tre variabili, i e j sono gli indici dei due cicli for, neccessari per buble-sort (vedasi algoritmi per array), e t è una variabile temporanea che conterrà i valori da scambiare. **/
  25.  
  26.     for(i = 0; i < dim; i++){
  27.         for(j = i + 1; j < dim; j++){
  28.             if(a[i] < a[j]){ // se a[i] < a[i+1] scambia, cioè in modo decrescente
  29.                 t = a[i]; // una volta passato come puntatore, vi si può accedere come un array normale
  30.                 a[i] = a[j];
  31.                 a[j] = t;
  32.             }
  33.         }
  34.     }
  35. }
  36.  
  37. /**
  38. stampo l'array :D
  39. **/
  40. void stampa(int* a, int dim){
  41.      int i = 0;
  42.      for(i = 0; i < dim; i++){
  43.            printf("[%d] ",a[i]);
  44.      }
  45.      printf("\n");
  46. }
  47.  
  48.  
  49. int main(){
  50.     int array[DIM];
  51.     inserimento(array, DIM);
  52.         stampa(array, DIM);
  53.     ordina(array, DIM);
  54.         stampa(array, DIM);
  55.     getch(); //come SYSTEM("PAUSE"); ma meno pesante per le risorse del PC
  56.     return 0;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement