Da gibt es ja gleich einen ganzen Fragenkatalog.
Runden:
Zum Runden gibt es round(), neben ceil() und floor()... aber mit round() kommst du deinem Ziel schon recht nahe
Mittelwert:
Array (class, struct...) mit den Werten und dann zusammenrechnen:
totalPreis = totalMenge = 0;
for (i = 0; i < anzahl; i++) {
totalPreis += menge[i] * preis[i];
totalMenge += menge[i];
}
durchschnitt = totalPreis / totalMenge;
Abweichung:
delta = round ( (durchschnitt - alterPreis) / alterPreis );