有没有办法从 C++ 函数中的 int 变量 return 浮点数?

Is there a way to return a float from int variables in c++ functions?

我的程序返回分数数组的值而不是平均值。我猜问题与类型转换有关。

#include <iostream>
using namespace std;

float average(int length, int array[]);

int main(){
    int N;
    
    cout << "Enter length: ";
    cin >> N;
    cout << endl;
    int scores[N];
    for(int i = 0; i < N; i++){
        cout << "Enter score: ";
        cin >> scores[i];
    }
    
    cout << average(N, scores);
    return 0;   
}

float average(int length, int array[]){
    int sum = 0;
    for(int i = 0; i < length; i++){
        sum += array[i];
    }
    
    return (sum / length);
}

当您将整数 sum 除以整数 length 时,您会得到一个整数结果。您将它存储在 float 中并不会改变这一点。

你可能想要:

return (static_cast<float>(sum) / static_cast<float>(length));