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
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; }