PDA

Visualizza la versione completa : [C++] Media con numeri negativi


djanthony93
28-01-2013, 16:54
bool mediaNegativi(array negativi, array positivi, int rnegativi, int rpositivi, int &m)
{
for(int i = 0; i < rnegativi; i++){
m += negativi[i];
}
m = (m / rnegativi);
for(int j = 0; j < rpositivi; j++){
if(abs(m) == positivi[j]) return true;
}
return false;
}

void stampaNegativi(array negativi, int rnegativi, int m)
{
for(int i = 0; i < rnegativi; i++){
if(negativi[i] > m) cout << " " << negativi[i];
}
}


con la prima funzione devo calcolare la media di un vettore di numeri negativi e controllare se il valore assoluto della media presente in un vettore di numeri positivi; con la seconda funzione devo stampare solo gli elementi del vettore dei numeri negativi che sono maggiori di quella media; il problema che non mi stampa niente perch la media calcolata, che controllo con un cout << m, risulta sempre essere 0... dove sbaglio? non riesco a capire...

Alex'87
28-01-2013, 20:44
"m" a cosa inizializzata?

Suggerimento: non riciclare le variabili. m la usi sia per contenere la somma che per la media, fai confusione e basta. Usa una variabile per la somma e una per la media...

djanthony93
28-01-2013, 21:39
"int m = 0" nel main, ho bisogno solo della parte intera dato che negli array non ci sono numeri decimali ma solo interi

oregon
28-01-2013, 21:42
Ma la media di due numeri interi come 1 e 2 non intera ...

djanthony93
28-01-2013, 21:55
Infatti se mi fa la media tra 1 e 2 come risultato mi d 1 perch a me serve solo la parte intera

oregon
28-01-2013, 21:56
Ok ... ma che media ? :confused:

Comunque, posta tutto il programma compreso main e dichiarazioni in modo da poterlo compilare ed eseguire. E dacci un esempio di input e output.

djanthony93
28-01-2013, 22:03
Ho allegato tutto il programma:

http://www15.zippyshare.com/v/17046598/file.html

oregon
28-01-2013, 22:07
E un file di input ?

djanthony93
28-01-2013, 22:09
Dentro c' "f1.txt"

oregon
28-01-2013, 22:15
Il prototipo della funzione

bool mediaNegativi(array negativi, array positivi, int rnegativi, int rpositivi, int &m)

mi sembra diverso da come la chiami nel main

mediaNegativi(positivi, negativi, rpositivi, rnegativi, m);

non trovi ?

Loading