NOIP2017普及组复赛T1《成绩》noip2017¶
这到题,写一下的原因是,精度问题
以同一个代码为例,在Windows DEV C++下的执行结果,和NOILinux下的执行结果不同。
代码如下:
#include <bits/stdc++.h>
using namespace std;
int ans;
int main()
{
    freopen("chengji.in", "r", stdin);
//  freopen("chengji.out", "w", stdout);
    int a, b, c;
    cin >> a >> b >> c;
    cout << a << ' ' << b << ' ' << c << endl;
    a = a * 0.2;
    b = b * 0.3;
    c = c * 0.5;
    ans = a + b + c;
    cout << a << ' ' << b << ' ' << c << endl;
    cout << ans << endl;
    fclose(stdin);
    fclose(stdout);
    return 0;
}
测试数据:

Windows DEV C++,执行结果

NOILinux下的执行结果

所以,这种写法是可取的。要么就用double类型整,要么就是int类型,20%的计算是*20/100

