[問題] 整數除法後面的小數點顯示

看板C_and_CPP作者 (PPP)時間15年前 (2009/05/14 17:38), 編輯推噓1(103)
留言4則, 3人參與, 最新討論串1/1
不好意思 遇到一個問題如下 就是當我想要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

05/14 17:41, , 1F
RandAvg 的 return type寫錯了...
05/14 17:41, 1F

05/14 17:52, , 2F
int RandAvg(int n)
05/14 17:52, 2F

05/14 17:53, , 3F
=> float RandAvg(int n)
05/14 17:53, 3F

05/15 08:52, , 4F
原來犯下了很笨的錯誤 = =
05/15 08:52, 4F
文章代碼(AID): #1A2-QBUc (C_and_CPP)