题目描述
小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。
如果得分至少是 60 分,则称为及格。如果得分至少为 85 分,则称为优秀。
请计算及格率和优秀率,用百分数表示,百分号前的部分四舍五入保留整 数。 输入描述
输入的第一行包含一个整数 n (1≤n≤104)n (1≤n≤104),表示考试人数。
接下来 nn 行,每行包含一个 0 至 100 的整数,表示一个学生的得分。 输出描述
输出两行,每行一个百分数,分别表示及格率和优秀率。百分号前的部分 四舍五入保留整数。
#include <iostream>
using namespace std;
int main()
{
// 请在此输入您的代码
int n;
cin>>n;
double jige=0;
double youxiu=0;
int a[n]={0};
for(int i=0;i<n;i++){
cin>>a[i];
}
for(int j=0;j<n;j++){
if(a[j]>=60){
jige+=1;
}
if(a[j]>=85){
youxiu+=1;
}
}
printf("%.0f%\n",(jige/n)*100);//不会自动换行。若只需要得到四舍五入的
//整数输出(不带小数位),那我们可以利用printf来进行输出,选择保留小数
//点后0位,即可达到四舍五入的目的
printf("%.0f%\n",(youxiu/n)*100);//%.0f表示不输出小数位,
//但要对第一位小数进行四舍五入,%.1f,
//表示保留一位小数,对第二位小数进行四舍五入
return 0;
}
注意:
若需要得到四舍五入的结果 方法:写一个函数只需要写一个函数判断当前数减去其整数部分是否大于等于0.5,若是则其整数部分进1,否直接输出其整数部分
int round_0 (double n)
{
// 若为负数,则先化为正数再进行四舍五入
if (n > 0)
return n - int(n) >= 0.5 ? int(n)+1 : int(n);
else
return -n - int(-n) >= 0.5 ? -(int(-n) + 1) : -int(-n);
}