有一个选修课的班级人数≤20,输入n表示参加选修考试的人数,然后输入n个数表示n个人的成绩,输出高于平均分的人对应的序号(下标)和成绩

有一个选修课的班级人数≤20,输入n表示参加选修考试的人数,然后输入n个数表示n个人的成绩,输出高于平均分的人对应的序号(下标)和成绩

可以从输入获取n个学生的成绩,计算平均分后,遍历学生成绩数组,将大于平均分的学生成绩及对应的序号下标打印即可。

代码如下:


#include <stdio.h>

int main(void){
    
    double scores[20];  // 存储学生成绩的数组 
    int n,i=0; 
    double sum=0,avg=0;
    
    scanf("%d",&n); //  获取学生人数 
    while(i<n){  // 从输入获取n个学生的成绩 
        scanf("%lf",&scores[i]);
        sum+=scores[i];      // 将当前输入的学生成绩累加到分数总和sum中 
        i++;
    }
    
    if(n>0){  //如果学生人数大于0,则计算对应凭据分 
        avg=sum/n;
    }
    
    for(int i=0;i<n;i++){  // 遍历学生成绩数组 
     // 如果当前学生成绩大于平均分,则输出对应的下标序号与对应的学生成绩     
        if(scores[i]>avg){ 
            printf("%d %.0f\n",i,scores[i]);
        }
        
    }
    
    
    return 0;
    
    
} 

img