
以下C++程序中有一句话我看不懂,请帮我解释一下吗? 谢谢!
doubleaver(doublex[],intn)//求平均值函数{inti;doublesum=0;for(i=0;i<n;i++){sum+=x[i];aver=i...
double aver(double x[],int n) //求平均值函数
{int i;
double sum=0;
for(i=0;i<n;i++)
{sum+=x[i];
aver=int(sum/n*10)/10.0; //这句话我看不懂,能帮我解释一下吗?
}
return aver;
}
我觉得既然sum是定义成double型的,那么sum/n就应该是平均值了吧? 展开
{int i;
double sum=0;
for(i=0;i<n;i++)
{sum+=x[i];
aver=int(sum/n*10)/10.0; //这句话我看不懂,能帮我解释一下吗?
}
return aver;
}
我觉得既然sum是定义成double型的,那么sum/n就应该是平均值了吧? 展开
3个回答
展开全部
保留1位小数
example
sum=120.333
n=3
sum/n=40.111
sum/n*10=401.11
int(sum/n*10)=401
int(sum/n*10)/10.0=40.1
example
sum=120.333
n=3
sum/n=40.111
sum/n*10=401.11
int(sum/n*10)=401
int(sum/n*10)/10.0=40.1
展开全部
没错 此句话实现double到int的转换.....
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
平均值aver没有定义,而且每加一次就要求一次平均值,属于浪费内存,没有意义我帮你把函数改下,
aver=int(sum/n*10)/10.0; 这句话其实就是求平均值的意思,只是弄的复杂没有必要
double aver(double x[],int n) //求平均值函数
{
int i;
double sum=0;
double aver=0; //定义返回值
for(i=0;i<n;i++)
{
sum+=x[i];
}
aver=sum/n; //循环得到和值求一次平均值就可以了 没必要反复求
return aver;
}
aver=int(sum/n*10)/10.0; 这句话其实就是求平均值的意思,只是弄的复杂没有必要
double aver(double x[],int n) //求平均值函数
{
int i;
double sum=0;
double aver=0; //定义返回值
for(i=0;i<n;i++)
{
sum+=x[i];
}
aver=sum/n; //循环得到和值求一次平均值就可以了 没必要反复求
return aver;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询