成绩统计(数位计算)

题目描述

小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。

如果得分至少是 60 分,则称为及格。如果得分至少为 85 分,则称为优秀。

请计算及格率和优秀率,用百分数表示,百分号前的部分四舍五入保留整 数。

输入描述

输入的第一行包含一个整数 n\ (1 \leq n \leq 10^4)n (1≤n≤104),表示考试人数。

接下来 nn 行,每行包含一个 0 至 100 的整数,表示一个学生的得分。

输出描述

输出两行,每行一个百分数,分别表示及格率和优秀率。百分号前的部分 四舍五入保留整数。

输入输出样例

示例

输入

7
80
92
56
74
88
100
0

输出

71%
43%

#include 
#include 

int main(int argc, char *argv[])
{int dp[10001];
  int n,a=0,b=0;
  scanf("%d",&n);
  for(int i=0;i=60)
    a++;
    if(dp[i]>=85)
    b++;
  }
  // printf("%.2d%\n%.2d%",(a/n)*100,(b/n)*100);
    printf("%.f%\n%.f%",(a*100.00/n),(b*100.00/n));
    //你这里n很大所以是保留2位小数,相当于a*1.00/n*100
    //先得了后面两位小数再乘整数,因为要计算成小数所以要用f
    //但最后结果不保留小数就写.f=.0f

  return 0;
}

笔记:

成绩统计(数位计算)_第1张图片

在“/”前面的数乘1.0、1.00....来确定要除到保留多少位小数

如果本身数字类型是float,那么就不需要上面步骤,直接写.f,.1f,.2f即可

如果是Int型打印时想输出小数,那就要首先%f,至于保留几位是看情况,还有就是要乘上个小数点的数实现转化!

int n, a = 1, b = 0;

float c = 1.0*a / 7;

注意只要乘上有小数点的数就可以直接激活后面的小数,不需要有多少个0,乘上个小数就自动激活类型,至于结果输出几位(四舍五入)看.f还是.1f,.2f......

.f=.0f,保留小数0位,.1f一位,以此类推

注意是1.0*a/7,不是1.0/7 !,是乘上一个数的写法!

总而言之就是f型加*1.00类似数据,是在计算过程时有多少个0结果就保留多少位小数

而最后的.f,.1f等是在输出结果时把最终的结果保留多少位小数输出

但是注意任何保留小数的操作都必须在f/double型才能操作,不能用d!

你可能感兴趣的:(c++)