Oppure

Loading
14/10/14 13:07
Enri90
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:

#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
aaa
14/10/14 14:03
pierotofy
Il mio blog: piero.dev