简单计算器c语言学生成绩统计 从键盘输入一个班(全班最多不超过30人)学生某门课的成绩,当输入成绩为负值时, 输入结束,分别实现下列功能: (1)统计不及格人数并打印不及格学生名单; (2)统计成绩在全班平均分及平均分之上的学生人数,并打印这些学生的名单; (3)统计各分数段的学生人数及所占的百分比。

时间: 2024-03-07 07:54:11 浏览: 125
下面是一个实现上述功能的 C 语言代码示例: ```c #include <stdio.h> #define MAX_STUDENTS 30 int main() { int scores[MAX_STUDENTS]; int num_students = 0; int num_failed = 0; int num_above_average = 0; int sum_scores = 0; int max_score = 0, min_score = 100; int num_0_59 = 0, num_60_69 = 0, num_70_79 = 0, num_80_89 = 0, num_90_100 = 0; // 输入学生成绩 printf("请输入学生成绩(输入负数结束):\n"); do { scanf("%d", &scores[num_students]); if (scores[num_students] >= 0) { // 统计总分 sum_scores += scores[num_students]; // 统计不及格人数 if (scores[num_students] < 60) { num_failed++; printf("不及格学生:%d\n", num_students + 1); } // 统计在平均分及平均分之上的学生人数 if (scores[num_students] >= sum_scores / (num_students + 1)) { num_above_average++; } // 统计各分数段的学生人数 if (scores[num_students] >= 0 && scores[num_students] < 60) { num_0_59++; } else if (scores[num_students] < 70) { num_60_69++; } else if (scores[num_students] < 80) { num_70_79++; } else if (scores[num_students] < 90) { num_80_89++; } else if (scores[num_students] <= 100) { num_90_100++; } // 统计最高分和最低分 if (scores[num_students] > max_score) { max_score = scores[num_students]; } if (scores[num_students] < min_score) { min_score = scores[num_students]; } num_students++; } } while (scores[num_students - 1] >= 0 && num_students < MAX_STUDENTS); // 计算平均分 double average_score = (double) sum_scores / num_students; // 输出统计结果 printf("不及格人数:%d\n", num_failed); printf("成绩在平均分及平均分之上的学生人数:%d\n", num_above_average); printf("各分数段学生人数及所占百分比:\n"); printf("0-59分:%d,%.2f%%\n", num_0_59, (double) num_0_59 / num_students * 100); printf("60-69分:%d,%.2f%%\n", num_60_69, (double) num_60_69 / num_students * 100); printf("70-79分:%d,%.2f%%\n", num_70_79, (double) num_70_79 / num_students * 100); printf("80-89分:%d,%.2f%%\n", num_80_89, (double) num_80_89 / num_students * 100); printf("90-100分:%d,%.2f%%\n", num_90_100, (double) num_90_100 / num_students * 100); printf("最高分:%d,最低分:%d\n", max_score, min_score); printf("平均分:%.2f\n", average_score); return 0; } ``` 该代码会提示用户输入学生成绩,当输入成绩为负数时,输入结束。然后根据输入的成绩实现统计不及格人数、成绩在全班平均分及平均分之上的学生人数、各分数段的学生人数及所占的百分比等功能,并输出统计结果。

相关推荐

最新推荐

recommend-type

用C语言设计并实现一个一元稀疏多项式的简单计算器

数据结构的一个实验,用C语言设计并实现一个一元稀疏多项式的简单计算器 输入并建立多项式输出多项式,序列按指数降序排列多项式A(x)和B(x)相加,并建立多项式A(x)+B(x)多项式A(x)和B(x)相减,并建立多项式A(x)-B...
recommend-type

设计一个程序来模拟一个简单的手持计算器

设计一个程序来模拟一个简单的手持计算器。程序支持算术运算+、-、*、/、=、以及C(清除)、A(全清除)操作。 基本要求 程序运行时,显示一个窗口,等待用户输入,用户可以从键盘输入要计算的表达式,输入的表达式...
recommend-type

编写一个用输入和输出流运算符进行的输入和输出的程序。从键盘输入两个数,分别对两个数进行加,减,乘和除的运算。

从键盘输入两个数,分别对两个数进行加,减,乘和除的运算。并输出计算结果,如: 23+123=146。 #include using namespace std; main() { float a,b,A,B,C,D; cout请输入两个数(输完第一个数后按enter键再输第...
recommend-type

员工考勤系统.docx

员工考勤系统.docx
recommend-type

基于STM32的调试模块的外设和时钟电路分析

基于STM32的调试模块的外设和时钟电路分析。回顾 CMSIS、LL、HAL 库
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB图像处理算法宝典:从理论到实战

![MATLAB图像处理算法宝典:从理论到实战](https://img-blog.csdnimg.cn/20200717112736401.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2d1emhhbzk5MDE=,size_16,color_FFFFFF,t_70) # 1. MATLAB图像处理基础理论 MATLAB图像处理是一种利用MATLAB编程语言进行图像处理的强大工具。它提供了丰富的函数和工具箱,用于图像获取、增强、分
recommend-type

matlab中1/x的非线性规划

在MATLAB中,可以使用非线性规划函数(`fmincon`)来优化一个包含1/x的非线性目标函数。下面是一个简单的例子: ```matlab % 定义目标函数 fun = @(x) 1/x; % 定义约束函数(这里没有约束) nonlcon = []; % 定义初始点 x0 = 1; % 定义优化选项 options = optimoptions('fmincon', 'Display', 'iter'); % 进行非线性规划 [x, fval] = fmincon(fun, x0, [], [], [], [], [], [], nonlcon, options); ``` 在
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。