C Array Funktion Durchschnittstemperatur
-
Es handelt sich eigentlich um eine ganz simple Anfängeraufgabe:
Aber ich komme seit Stunden nicht weiter und weiß nicht woran es scheitert.
Das ist für mich absolutes Neuland.Zur Aufgabenstellung:
Ich soll drei Arrays deklarieren, die jeweils die letzten 12 Monatswerte enthalten. Max. Temp., Min. Temp., Niederschlag.
Dazu soll ich eine Funktion schreiben avg (), welche mir von jedem Array jeweils den Durchschnittswert ausgibt, sowie eine Funktion avg2 zur Berechnung des Mittelwertes. Später folgt dann auch noch eine Funktion für Min und Max, sowie Standardabweichungen.Die erste Funktion Durchschnitt habe ich auch schon geschrieben, es kommt auch ein Ergebnis dabei raus, aber nur Unsinn. Kann mir jemand weiter helfen?
Hier mein bisheriger Programmcode:
#include <stdio.h>
#include <math.h>//Funktion zur Ermittlung des Durchschnitts
float avg(float tempmax[],int n_ele) {
float avg = 0;
int i;
for (i = 0;i <n_ele; ++i) {avg += tempmax[i];
}
avg /= i;
return avg;
}int main() {
float avg;
float tempmax[12] = {3.8, 5.9, 10.8, 15.2, 20.4, 23.6, 25.3, 25.0, 19.7, 14.2, 7.6, 4.1};
float tempmin[12] = {-1.1,-0.9, 2.2, 4.8, 9.6, 13.0, 14.8, 14.7, 10.9, 7.3, 2.5, -0.3};
int nied[12] = {28, 44, 57, 60, 85, 98, 93, 95, 76, 64, 61, 60};printf("Die durchschnittlich maximale Temperatur lag bei: %.2f\n", avg);
return 0;
}
-
Du solltest die Funktion auch aufrufen und nicht nur eine Variable ausgeben.
printf("Die durchschnittlich maximale Temperatur lag bei: %.2f\n", avg(tempmax,12));
Die Variable avg in
main
musst du umbenennen oder entfernen.
-
Vielen vielen Dank für deine Antwort. Das war ja wirklich ne Kleinigkeit.
-
Dein int-Array 'nied' darfst du aber nicht an deine avg-Funktion übergeben, die Typen passen nicht.
Du brauchst eine weitere Funktion dafür, also avg_int() o.ä.
-
Danke das habe ich bereits gemerkt
habe es in float umgewandelt. Was auch funktioniert. Oder sollte ich so was lieber nicht machen?
-
Doch, ist in Ordnung.
-
Im Allgemeinen ist die Umwandlung von int nach float u.ä. nicht empfehlenswert, wenn du deinen Anwendungsfall vollständig mit einem int-Wertebereich abdecken kannst, nimm int bzw. int-verwandte Typen.
Mit float handelst du dir Unschärfen und Zusatzabhängigkeiten ein, z.B. bei Vergleichen.