有没有办法从 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));
我的程序返回分数数组的值而不是平均值。我猜问题与类型转换有关。
#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));