Enri90 (Normal User)
Newbie
Messaggi: 1
Iscritto: 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++ |
#include <iostream> using namespace std; void bubblesort(int v[], int n); int mediana(int array[], int a) { //funzione mediana int mediana, media; bubblesort(array, a); if (a % 2 == 1) { //se valore dispari mediana = (a + 1) / 2; return array[mediana - 1]; } else if (a % 2 == 0) { //se valore pari media = ((a / 2) + ((a / 2) + 1)) / 2; return array[media]; } return 0; } int main() { int N; int i; cout << "Quanti numeri vuoi inserire?" << endl; cin >> N; int vett[N]; for (i = 0; i < N; i++) { cout << "Inserisci il " << i + 1 << "° numero:"; cin >> vett[i]; } cout << "La mediana e': " << mediana(vett, N) << endl; //stampa il calcolo ricevuto dalla funzione } void bubblesort(int v[], int n) { int temp; for (int i = 0; i < n - 1; i++) { for (int k = 0; k < n - 1 - i; k++) { if (v[k] > v[k + 1]) { temp = v[k]; v[k] = v[k + 1]; v[k + 1] = temp; } } } }
|
Volevo sapere, conoscete un metodo per calcolare la mediana senza fare un ordinamento? Grazie a chi risponde
|