大概是关于实数的问题
c4droid吧
全部回复
仅看楼主
level 10

2017年11月26日 04点11分 1
level 10
#include<stdio.h>
int main(){
int num=0,n=0,i=0;
float adv=0,sum=0;
scanf("%d",&n);
for (i=0;i<n;i++) {
scanf("%d",&num);
sum = sum + num;
//printf("%f",sum);
}
adv = sum/n;
printf("n=%d\n-238746.0/200=%f\nadv=%f\nsum=%f\nsumsum/n=%f",n,-238746.0/200,adv,sum,sum/n);
//printf("%.0f %.5f",sum,adv);
}
2017年11月26日 04点11分 2
这个是代码→_→
2017年11月26日 04点11分
变量sum n的值都是对的
2017年11月26日 04点11分
可是我用-238746.0/200得的结果为-1193.730000
2017年11月26日 04点11分
用sum(值为-238746.000000)除以n(值为200)得的结果为-1193.729980
2017年11月26日 04点11分
level 10
2017年11月26日 04点11分 3
level 10
200
-9959 8467 -3666 -3501 9169 5724 1478 -643 -3039 -5537 -4295 -1856 -6720 6827 -39 -9509 -7005 1942 -5173 -4564 2390 4604 -6098 -9847 -9708 2382 7421 8716 9718 9895 -4553 -8275 4771 1538 -8131 9912 -4334 -3702 7035 -106 -1298 -6190 1321 332 7673 -5336 5141 -2289 -1748 -3132 -4454 -2357 2661 2756 -9964 2859 -1277 -259 -2472 -9222 2316 -6965 -7811 -8158 -9712 105 -960 -1058 9264 -7353 -2555 -6196 5890 -3271 -5631 5350 5006 1100 -5608 -6452 9629 2623 -5917 9954 8756 1840 -5034 -2624 3931 -3693 6944 2438 -5375 1323 -4463 -8463 6118 -7918 -7072 6541 -5167 1114 -5361 -343 -7297 -70 3977 -7694 1672 -7615 -4979 -1256 -3077 9072 -3730 -4171 -3224 5573 -4903 6512 -6015 3290 -839 8636 -7646 -5234 -6346 5574 -5969 2052 -2651 -8850 6941 -8277 3966 -6570 1106 190 8007 1337 5457 2287 -2248 383 4945 -1091 2208 -242 -5780 8588 -3578 -5055 -2495 3030 6413 -833 -9100 2590 8762 -8345 7410 -3641 -2377 -9464 -8453 -3517 -2406 -5959 -6398 -5651 291 835 -626 1020 -5404 -5980 -2653 -6802 9668 -5517 -1719 -5266 -9947 -8001 -3583 -2063 -3100 -6212 8127 -9533 -6272 4893 -5353 -7518 7807 -7579 4310 -3383 -7188 -486
2017年11月26日 04点11分 4
这个是数据_(:з」∠)_
2017年11月26日 04点11分
level 10
2017年11月26日 04点11分 5
level 10
我觉得(๑•ี_เ•ี๑)
2017年11月26日 05点11分 6
level 9
没错就是精度问题,float的精度应该在6位,但反复运算累计误差会变大。double好一点,精度在15位。
2017年11月26日 06点11分 7
level 1

2019年03月13日 03点03分 8
1