T
Taxotic
Gast
Hallo,
ich arbeite an einem Programm, das Werte nacheinander einliest und diese in einem Array abspeichert. Nun möchte ich in einer extra Funktion den Mittelwert dieses Arrays berechnen und ihn anschließen an die main Funktion zurückgeben.
Problem: Wie übergebe ich den Array an die Mittelwertfunktion?
Ich habe herausgefunden, dass dies mithilfe von Zeigern geschieht. Nun habe ich versucht, das was ich im Internet gefunden habe, in meinem Programm umzusetzen. Es gibt auch keine Fehlermeldung bzgl. des Zeigers, aber das Programm arbeitet trotzdem nicht (Mittelwert ist immer 0,000) und meine Vermutung ist, dass der Fehler darin liegt, dass ich versuche den Array an die Mittelwertfunktion zu übergeben, da ich das in diesem Programm zum ersten Mal mache.
Danke und viele Grüße
Code:
ich arbeite an einem Programm, das Werte nacheinander einliest und diese in einem Array abspeichert. Nun möchte ich in einer extra Funktion den Mittelwert dieses Arrays berechnen und ihn anschließen an die main Funktion zurückgeben.
Problem: Wie übergebe ich den Array an die Mittelwertfunktion?
Ich habe herausgefunden, dass dies mithilfe von Zeigern geschieht. Nun habe ich versucht, das was ich im Internet gefunden habe, in meinem Programm umzusetzen. Es gibt auch keine Fehlermeldung bzgl. des Zeigers, aber das Programm arbeitet trotzdem nicht (Mittelwert ist immer 0,000) und meine Vermutung ist, dass der Fehler darin liegt, dass ich versuche den Array an die Mittelwertfunktion zu übergeben, da ich das in diesem Programm zum ersten Mal mache.
Danke und viele Grüße
Code:
Code:
#include <stdio.h>
#include <stdlib.h> //für malloc
int mittelwert(int* speicher)
{
float mittelwert;
int i;
for (i=0;i<sizeof(speicher);i++)
{
speicher[i]=speicher[i]+speicher[i+1];
}
mittelwert=speicher[i]/sizeof(speicher);
return mittelwert;
}
int main (void)
{
int eingabe=0;
int i=0;
int *speicher;
int anzahl;
printf("Wie viele Werte wollen Sie einlesen\n");
scanf("%i",&anzahl);
fflush(stdin);
printf("Bitte geben Sie das Gewicht ein\n");
speicher= (int *) malloc (anzahl* sizeof(int));
for (i=0;i<anzahl;i++)
{
printf("Gewicht %i",i+1);
printf("\n");
scanf("%i",&eingabe);
speicher[i]=eingabe;
}
printf("%f",mittelwert(speicher));
return (0);
}