码迷,mamicode.com
首页 > 其他好文 > 详细

题解 P3954 【成绩】

时间:2018-02-01 23:16:43      阅读:297      评论:0      收藏:0      [点我收藏+]

标签:运行   告诉   截图   转化   三次   scanf   noi   double   log   

题解 P3954 【成绩】

这可能是CCF的NOIP普及组历年来最简单的一道题了,考试时看到这题直接晕倒,这题是不是有坑?这么简单?没错,还真就这么简单,专门来考验你是否会编程。但CCF出来的成绩却令我非常意外,60分!!谷测满分,CCF60分!!看到之后我就愤怒了,接下来我来总(pan)结(dian)当年那些神错法。

30分代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a,b,c;
    int s;
    scanf("%d%d%d",&a,&b,&c);
    s=(int)(a*0.2+b*0.3+c*0.5);//第一次强制转化
    printf("%.lf",(double)s);//第二、三次强制转化
} 

  

运行:

输入:60 90 80

输出:78

谷测:

AC!记录:https://www.luogu.org/record/show?rid=4962057

60分代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a,b,c;
    scanf("%d%d%d",&a,&b,&c);
    int x=a*0.2+b*0.3+c*0.5;//第一次强制转化
    printf("%d",x);
}

运行:

输入:60 90 80

输出:78

谷测截图:

AC! 记录:https://www.luogu.org/record/show?rid=4962081

满分代码!

#include<bits/stdc++.h>
using namespace std;
int main()
{
    double a,b,c;
    double s;
    scanf("%lf%lf%lf",&a,&b,&c);
    s=a*0.2+b*0.3+c*0.5;
    printf("%.lf",s);//double型精度满足要求
} 

或者

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a,b,c;
    int s;
    scanf("%d%d%d",&a,&b,&c);
    s=a*20/100+b*30/100+c*50/100;//不涉及强制转化
    printf("%d",s);
} 

  

这告诉了我们一个惨痛的道理,书上的概念性的东西是多么重要,了解了这些才能获得这题的全分,了解类型的转换。幸好CCF最后把我们的分还是给加回来了,谢谢你啊!。

这一题还是别抄了吧,这题还抄……

题解 P3954 【成绩】

标签:运行   告诉   截图   转化   三次   scanf   noi   double   log   

原文地址:https://www.cnblogs.com/Douglas-Zhou/p/cj.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!