问题标题: 酷町堂:2696

0
0
已解决
胡艺玮
胡艺玮
新手守护
新手守护

2696   挂科比率

题目描述 Description

某班级有n个学生,在第一学期每个学生都上了5门课程,现在班主任想统计该班级在本学期中有多少人挂过科,只要有一门课的成绩低于60分都算是挂过科,请问该班级的n个学生中有几个人挂过科,该班级的挂科比率是多少(保留一位小数)。

输入描述 Input Description

第一行:n
接下来n行:每行5个整数,为每个学生的5门课程的成绩

输出描述 Output Description

第一行:该班级挂科的人数
第二行:该班级挂科的比率

样例输入 Sample Input

 

7
59 54 96 61 77
81 67 76 70 59
97 67 99 88 83
70 61 71 61 80
94 83 100 69 89
75 100 91 75 59
63 90 63 60 97

样例输出 Sample Output

 

3
0.4


0
已采纳
李明翰
李明翰
新手光能
新手光能
struct{
    整形 a,b,c,d,e; 
}s[101];
int main(){
    double sum=0,n;
    输入>>n;
    for(int i=1;i<=n;i++){
        输入>>s[i].a>>s[i].b>>s[i].c>>s[i].d>>s[i].e;
    }
    for(int i=1;i<=n;i++){
        if(s[i].a<60||s[i].b<60||s[i].c<60||s[i].d<60||s[i].e<60){
            sum++;
        }
    }
    double summ=sum/n; 
    输出<<sum<<endl;
    printf("%.1f\n",summ);
    return 0;
}

求采纳,谢谢

0
郑怡翔
郑怡翔
初级天翼
初级天翼

结构体方法:

struct h
{
    int a,b,c,d,e;
};
h ok[110];

结构体定义(如上)。

核心代码:

for(int i=1;i<=n;i++)//只要有分数小于60(即挂科),ans就++,表示挂科的人数
    {
        if(ok[i].a<60)
        {
            ans++;
            continue;
        }
        if(ok[i].b<60)
        {
            ans++;
            continue;
        }
        if(ok[i].c<60)
        {
            ans++;
            continue;
        }
        if(ok[i].d<60)
        {
            ans++;
            continue;
        }
        if(ok[i].e<60)
        {
            ans++;
            continue;
        }
    }

最后除以总人数即可

0
0
王远哲
王远哲
修练者
修练者
double n,sum=0.0;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i].a1>>a[i].b1>>a[i].c1>>a[i].d1>>a[i].e1;
        if(a[i].a1<60)
            a[i].s=1;
        if(a[i].b1<60)
            a[i].s=1;
        if(a[i].c1<60)
            a[i].s=1;
        if(a[i].d1<60)
            a[i].s=1;
        if(a[i].e1<60)
            a[i].s=1;
    }
    for(int i=1;i<=n;i++)
    {
        if(a[i].s)
            sum++;
    }
    cout<<sum<<endl;
    printf("%.1f",((sum/n*100)+0.5)/100.0);

 

0
侯平仄
侯平仄
新手天翼
新手天翼

用struct(结构体)定义数组

如果没到60就++

最后算出挂科率

        望采纳,祝你AC~~~~~~

0
0
褚俊皓
褚俊皓
新手天翼
新手天翼
struct{
    整形 a,b,c,d,e; 
}s[101];
int main(){
    double sum=0,n;
    输入>>n;
    for(int i=1;i<=n;i++){
        输入>>s[i].a>>s[i].b>>s[i].c>>s[i].d>>s[i].e;
    }
    for(int i=1;i<=n;i++){
        if(s[i].a<60||s[i].b<60||s[i].c<60||s[i].d<60||s[i].e<60){
            sum++;
        }
    }
    double summ=sum/n; 
    输出<<sum<<endl;
    printf("%.1f\n",summ);
    return 0;
}
我要回答