|  | 
 
| 
小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  
 如果得分至少是 60 分,则称为及格。如果得分至少为 85 分,则称为优秀。
 
 请计算及格率和优秀率,用百分数表示,百分号前的部分四舍五入保留整 数。
 
 输入描述
 输入的第一行包含一个整数 n\ (1 \leq n \leq 10^4)n (1≤n≤10
 4
 ),表示考试人数。
 
 接下来 nn 行,每行包含一个 0 至 100 的整数,表示一个学生的得分。
 
 输出描述
 输出两行,每行一个百分数,分别表示及格率和优秀率。百分号前的部分 四舍五入保留整数。
 
 输入输出样例
 示例
 输入
 
 7
 80
 92
 56
 74
 88
 100
 0
 copy
 输出
 
 71%
 43%
 copy
 运行限制
 最大运行时间:1s
 最大运行内存: 256M
 <#include <stdio.h>
 #include <stdlib.h>
 int main()
 {
 int n,m[1001],i;
 int a=0,b=0,c,d;
 double j=0,k=0;
 scanf("%d",&n);
 for(i=0;i<n;i++)
 {
 scanf("%d",&m[i]);
 }
 for(i=0;i<n;i++)
 {
 if(m[i]>=60)
 {
 a++;
 }
 if(m[i]>=85)
 {
 b++;
 }
 }
 j=(a*1.0/n)*100;
 k=(b*1.0/n)*100;
 c=(int)(j+0.5);//四舍五入
 d=(int)(k+0.5);
 printf("%d%%\n",c);
 printf("%d%%",d);
 
 return 0;
 }>
 在编译器上输出正确,但提交的时候显示运行错误,这是为什么
 
试试这个: 复制代码#include <stdio.h>
int main()
{
    int n, score;
    float pass_rate = 0, merit_rate = 0;
    scanf("%d", &n);
    
    // 输入同时计算,一个 for 循环,时间复杂度 O(n)
    for(int i = 0; i < n; i++){
        scanf("%d", &score);
        if (score >= 85){
            merit_rate++;
            pass_rate++;
        }
        else if (score >= 60) pass_rate++;
    }
    printf("%.0f%%\n%.0f%%", pass_rate/n*100, merit_rate/n*100);
    return 0;
}
 | 
 |