Ich bin ganz verwirrt durch, wie meine Antwort ist mir einen Schwimmer für diese einfache Funktion nicht geben:Warum gibt meine Funktion eine ganze Zahl zurück, obwohl ich die Antwort als Float angegeben habe?
#include <iostream>
using namespace std;
int average(int a[], int num){
float avg = 0;
for (int i = 0; i<num; i++){
avg += a[i];
}
avg = avg/num;
cout<<avg<<endl; //gives 1.5
return avg;
}
int main(){
int a[] = {1,2};
float result = average(a, 2);
cout<<result<<endl; //gives 1
return 0;
}
Wie in den Kommentaren zu sehen sind, warum die Ausgabe der Funktion 1 sein würde, wenn der letzte berechnete Wert ist 1,5? Ich habe auch die Antworten angegeben, die in float-Form zurückgegeben werden sollen, also weiß ich nicht wirklich, warum es mir immer noch einen int gibt.
'Durchschnitt' sollte Float, nicht Int. –
Ja, aber die Ausgabe von 'result' ist 1 und nicht 1.5. Dies ist der seltsame Teil .. – kwotsin
'int average (int a [], int num)' ist die Signatur einer Funktion, die 'int' zurückgibt. –