7-3 平均成绩 (10分)

7-3 平均成绩 (10分)

给定一所学校学生的体育成绩,请你统计全班的平均成绩和男生、女生的平均成绩。

输入格式:

输入首先在第一行中给出一个正整数 N(≤10000),即全校学生人数。最后 N 行,每行按照格式 性别 成绩 给出一位学生的信息。其中 性别 为 1 表示男生,0 表示女生;成绩 是一个 0 到 100 之间的整数。

输出格式:

在一行中依次输出全班的平均成绩、男生的平均成绩、女生的平均成绩。输出小数点后1位,数字间有一个空格分隔。

注意:如果全是男生或全是女生,则缺少的性别就没有办法计算平均分,相应的位置应该输出一个 X 表示没有。

输入样例 1:

5
1 97
0 91
0 98
1 95
1 90

输出样例 1:

94.2 94.0 94.5

输入样例 2:

5
0 97
0 91
0 98
0 95
0 90

输出样例 2:

94.2 X 94.2
#include<iostream>
using namespace std;
int main(void){
    int n,gender,grade,cntm=0,cntfm=0;
	double all=0,m=0,fm=0;
	cin>>n;
	for( int i=1;i<=n;i++){
		 cin>>gender>>grade;
		 all+=grade;
		 if( gender == 0 ){
		 	 fm+=grade;
		 	 cntfm++;
		 } 
		 else if( gender == 1 ){
		 	 m+=grade;
		 	 cntm++;
		 }
	} 
	all = (double) ( (double) all/(double)n );
	if( cntfm!=0 )
	    fm = (double) ( (double) fm/(double)cntfm );
	if( cntm!=0)
	    m = (double) ( (double) m/(double)cntm );
    printf("%.1lf",all);
    if(  cntm != 0 )
         printf(" %.1lf",m);
    else printf(" X");
    if(  cntfm != 0 )
         printf(" %.1lf",fm);
    else printf(" X");
    
    return 0;
}

 

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 程序猿惹谁了 设计师:白松林 返回首页