Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Altro metodo per calcolo mediana
Forum - C/C++ - Altro metodo per calcolo mediana

Avatar
Enri90 (Normal User)
Newbie


Messaggi: 1
Iscritto: 14/10/2014

Segnala al moderatore
Postato alle 15:07
Martedì, 14/10/2014
Ciao ragazzi, volevo esporvi il mio "problema". In pratica io ho questo programma che calcola la mediana di dati inseriti da tastiera. Il programma funziona ed è questo:

Codice sorgente - presumibilmente C++

  1. #include <iostream>
  2. using namespace std;
  3.  
  4. void bubblesort(int v[], int n);
  5.  
  6. int mediana(int array[], int a) { //funzione mediana
  7.  
  8.         int mediana, media;
  9.  
  10.         bubblesort(array, a);
  11.  
  12.         if (a % 2 == 1) { //se valore dispari
  13.  
  14.                 mediana = (a + 1) / 2;
  15.                 return array[mediana - 1];
  16.         }
  17.         else if (a % 2 == 0) {  //se valore pari
  18.  
  19.                 media = ((a / 2) + ((a / 2) + 1)) / 2;
  20.                 return array[media];
  21.         }
  22.         return 0;
  23. }
  24.  
  25. int main() {
  26.  
  27.         int N;
  28.  
  29.         int i;
  30.  
  31.         cout << "Quanti numeri vuoi inserire?" << endl;
  32.         cin >> N;
  33.         int vett[N];
  34.  
  35.         for (i = 0; i < N; i++) {
  36.                 cout << "Inserisci il " << i + 1 << "° numero:";
  37.                 cin >> vett[i];
  38.         }
  39.         cout << "La mediana e': " << mediana(vett, N) << endl; //stampa il calcolo ricevuto dalla funzione
  40. }
  41.  
  42. void bubblesort(int v[], int n) {
  43.  
  44.         int temp;
  45.  
  46.         for (int i = 0; i < n - 1; i++) {
  47.                 for (int k = 0; k < n - 1 - i; k++) {
  48.                         if (v[k] > v[k + 1]) {
  49.                                 temp = v[k];
  50.                                 v[k] = v[k + 1];
  51.                                 v[k + 1] = temp;
  52.                         }
  53.                 }
  54.         }
  55. }



Volevo sapere, conoscete un metodo per calcolare la mediana senza fare un ordinamento? Grazie a chi risponde

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6108
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 16:03
Martedì, 14/10/2014


Seguimi su Twitter: http://www.twitter.com/pierotofy

Fai quello che ti piace, e fallo bene.
PM Quote