作者tohru (PPP)
看板C_and_CPP
标题[问题] 整数除法後面的小数点显示
时间Thu May 14 17:38:18 2009
不好意思 遇到一个问题如下
就是当我想要59784/100时
想要得到的数字是597.84
可是不管怎麽用cast
还是只能出现597.00
请问这里是出了什麽问题呢?
#include <stdio.h>
#include <stdlib.h>
int RandAvg(int n);
int main()
{
float ans;
printf("100个0~1000的乱数平均值为:\n");
ans=RandAvg(100);
printf("平均值为%.3f\n",ans);
system("pause");
return 0;
}
int RandAvg(int n)
{
int i, j, sum=0;
float avg=0;
int number[100]={0};
srand((unsigned) time(NULL));
for(i=0;i<=n-1;i++)
{
number[i]=rand()%1000+1;
printf("%3d ",number[i]);
if(i%10==9)
printf("\n");
}
for(j=0;j<=n-1;j++)
{
sum=sum+number[j];
}
printf("\n总和为%d\n", sum);
avg=(float)sum/(float)n;
return avg;
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.116.243.66
1F:推 ianfang:RandAvg 的 return type写错了... 05/14 17:41
2F:→ sanforever:int RandAvg(int n) 05/14 17:52
3F:→ sanforever:=> float RandAvg(int n) 05/14 17:53
4F:→ tohru:原来犯下了很笨的错误 = = 05/15 08:52