P8823 [传智杯 #3 初赛] 期末考试成绩 题解草稿

· · 题解

博客食用效果更佳

题目传送门

这是一道简单的模拟题,初学者也可以用来练习 if—else 语句。

输入卷面成绩 n,再按题意模拟即可,但有几点小细节。

注意事项

因为有 .0 需要保留,所以输出要用 printf 保留一位小数。

分数小于 60 分的,如果在调整后仍小于 60 分,输出 0.0

另外题面也有一些小问题,第一种情况应是 90 分及以上。

AC code:

#include<bits/stdc++.h>
using namespace std;
int n;
int main(){
    cin>>n;
    if(n<60)n=floor(sqrt(n)*10);//分数小于60的先调整再计算
    if(n>=90)printf("4.0");//分数在90及以上的满分,4.0
    else if(n>=60&&n<=89)printf("%.1f",4-0.1*(90-n));//分数在60到89之间的情况
    else printf("0.0");//调整后仍小于60分,挂科,0.0分
    return 0;
} 

感谢阅读!