计算考试成绩的总分,最高分,最低分,平均分以及成绩的排名算法

#include <stdio.h>
#define N 10

//计算考试总分
int getTotalScore(int score[]){
	int sum = 0;
	int i;
	for(i = 0;i < N;i++){
		sum += score[i];
	}
	return sum;
}

//计算平均分
int getAvgScore(int score[]){
	return getTotalScore(score) / N;
}

//计算最高分
int getMax(int score[]){
	int max = -1;
	int i;
	for(i = 0;i < N;i++){
        if(score[i] > max){
			max = score[i];
		}
	}
	return max;
}

//计算最低分
int getMin(int score[]){
	int min = 100;
	int i;
	for(i = 0;i < N;i++){
		if(score[i] < min){
			min = score[i];
		}
	}
	return min;
}

//分数降序排序
void sort(int score[]){
	int i,j;
	for(i = N-2;i >= 0;i--){
		for(j = 0;j <= i;j++){
			if(score[j] < score[j+1]){
				int temp;
				temp = score[j];
				score[j] = score[j + 1];
				score[j + 1] = temp;
			}
		}
	}
	for(i = 0;i < N;i++){
        printf("%d ",score[i]);
	}
}

int main()
{
	int score[N] = {67,98,75,63,82,79,81,91,66,84};
	int sum,avg,max,min;
	sum = getTotalScore(score);
	avg = getAvgScore(score);
	max = getMax(score);
	min = getMin(score);
	printf("总分是:%d\n",sum);
	printf("平均分是:%d\n",avg);
	printf("最高分是:%d\n",max);
	printf("最低分是:%d\n",min);
	printf("----------成绩排名---------\n");
	sort(score);
	return 0;
}

运行结果:

这是一个涉及到数据结构和算法的问题,我们可以使用Python来模拟这个场景。首先,我们需要创建一个二维数组存储每个学生的各科目成绩。然后,分别计算每门课的平均分、不及格人数、最高分最低分。接着统计每个学生的总分和平均成绩,并找出不及格的门数。最后,我们按照平均成绩对学生进行排序。 以下是简化的Python代码示例: ```python # 假设学生成绩存储在一个二维列表中 scores = [ [85, 90, 78, 92], [96, 88, 93, 95], # 学生1 [70, 65, 55, 80], # 学生2 # 其他学生... ] # 计算各科成绩 def calculate_subject_scores(scores): num_students, _ = len(scores), len(scores[0]) avg_scores, min_scores, max_scores, fail_counts = {}, {}, {}, {} for subject in range(len(scores[0])): total = sum(score[subject] for score in scores) avg = total / num_students min_score, max_score = min(score[subject] for score in scores), max(score[subject] for score in scores) avg_scores[f'Subject {subject+1}'] = avg min_scores[f'Subject {subject+1}'] = min_score max_scores[f'Subject {subject+1}'] = max_score fail_counts[f'Subject {subject+1}'] = sum(1 for score in scores if score[subject] < 60) return avg_scores, min_scores, max_scores, fail_counts # 每位学生的平均成绩和不及格门数 def student_stats(scores): students_avg = {} students_fail_count = {} for i, student_scores in enumerate(scores): total = sum(student_scores) avg = total / len(student_scores) students_avg[i+1] = avg students_fail_count[i+1] = sum(1 for score in student_scores if score < 60) return students_avg, students_fail_count # 按照平均成绩排序 def sort_students_by_average(students_avg): sorted_students = sorted(students_avg.items(), key=lambda x: x[1], reverse=True) return sorted_students # 示例计算 avg_scores, _, _, _ = calculate_subject_scores(scores) students_avg, students_fail_count = student_stats(scores) sorted_students = sort_students_by_average(students_avg) # 输出结果 print("各科成绩:") for key, value in avg_scores.items(): print(f"{key}: 平均分={value}, 不及格人数={fail_counts[key]}") print("\n每位学生的平均成绩和不及格门数:") for student, avg in students_avg.items(): print(f"学生{student}: 平均成绩={avg}, 不及格门数={students_fail_count[student]}") print("\n按平均成绩排序的学生:") for rank, (student, _) in enumerate(sorted_students, start=1): print(f"{rank}. 学生{student}: 平均成绩={_}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值