【发布时间】:2020-06-10 13:09:35
【问题描述】:
我如何得到除法的浮点结果?
虽然我将平均数组定义为浮点数。
int main()
{
const int Number = 20;
int Fibonacci[Number];
float average[Number];
for ( int i =0; i <= Number; i++ )
{
if ( i == 0 )
{Fibonacci[i] = 0;}
else if ( i == 1 )
{Fibonacci[i] = 1;}
else
{Fibonacci[i] = Fibonacci[i -1] + Fibonacci[i -2];
//average[i] = (Fibonacci[i -1] + Fibonacci[i -2])/2 ;
}
}
cout<< "The first 20 Fibonacci series numbers are: \n";
for ( int i = 1; i <= Number; i++)
{ cout<< Fibonacci[i]<<endl;
}
cout<< "The average adjacent array numbers are: \n";
for ( int i = 3; i <= Number; i++)
{ average[i] = (Fibonacci[i]/2);
//cout.precision(0);
问题来了
cout<< average[i]<<endl; <-----here the problem!!
}
return 0;
}
感谢您的帮助。 提前致谢。
【问题讨论】:
-
你在做整数除法。
Fibonacci包含int,1也是一个 int。您想先将其中一个值转换为浮点数。例如:average[i] = (Fibonacci[i]/2.f) -
for ( int i =0; i <= Number; i++ )应该是for ( int i =0; i < Number; i++ )。正如所写,循环的最后一次传递离开了数组的末尾。