1. 引言在C语言的学习过程中计算平均分是一个非常经典且基础的问题。无论是学生成绩统计、比赛评分还是日常数据处理平均分的计算都扮演着重要角色。本文将带你从最简单的实现开始逐步深入掌握C语言中计算平均分的各种方法与技巧。2. 基础版固定数量成绩求平均2.1 问题描述假设我们需要计算5个学生的成绩平均值最直接的方式就是定义5个变量依次输入并累加最后除以5。2.2 代码实现#includestdio.hintmain(){doublescore1,score2,score3,score4,score5;doublesum,average;printf(请输入5个学生的成绩\n);scanf(%lf %lf %lf %lf %lf,score1,score2,score3,score4,score5);sumscore1score2score3score4score5;averagesum/5;printf(总分为%.2f\n,sum);printf(平均分为%.2f\n,average);return0;}2.3 代码解析使用double类型存储成绩避免整数除法带来的精度丢失。scanf一次性读取5个成绩用空格或换行分隔。平均分 总分 ÷ 人数注意这里sum / 5中sum是double类型所以结果是浮点数。3. 进阶版使用数组与循环3.1 问题描述当学生数量较多时逐个定义变量显然不现实。此时应使用数组配合循环来解决问题。3.2 代码实现#includestdio.h#defineN10// 学生人数intmain(){doublescores[N];doublesum0,average;inti;printf(请输入%d个学生的成绩\n,N);for(i0;iN;i){scanf(%lf,scores[i]);sumscores[i];}averagesum/N;printf(总分为%.2f\n,sum);printf(平均分为%.2f\n,average);return0;}3.3 代码解析使用宏定义#define N 10方便修改学生人数。循环读入成绩的同时累加求和一次循环完成输入与求和。数组下标从0开始scores[i]表示第 i1 个学生的成绩。4. 动态版由用户指定人数4.1 问题描述很多时候学生人数在程序运行前并不确定需要用户先输入人数再输入成绩。4.2 代码实现#includestdio.h#includestdlib.hintmain(){intn,i;double*scores;doublesum0,average;printf(请输入学生人数);scanf(%d,n);// 动态分配内存scores(double*)malloc(n*sizeof(double));if(scoresNULL){printf(内存分配失败\n);return1;}printf(请输入%d个学生的成绩\n,n);for(i0;in;i){scanf(%lf,scores[i]);sumscores[i];}averagesum/n;printf(总分为%.2f\n,sum);printf(平均分为%.2f\n,average);free(scores);// 释放内存return0;}4.3 代码解析使用malloc动态分配内存需要包含stdlib.h头文件。使用完毕后必须调用free释放内存防止内存泄漏。动态内存分配适合人数不确定的场景更加灵活。5. 实战扩展统计不及格人数与最高分5.1 问题描述在实际应用中我们往往不仅需要平均分还需要统计不及格人数、最高分、最低分等信息。5.2 代码实现#includestdio.h#defineN10intmain(){doublescores[N];doublesum0,average,max,min;inti,failCount0;printf(请输入%d个学生的成绩\n,N);for(i0;iN;i){scanf(%lf,scores[i]);sumscores[i];if(scores[i]60){failCount;}}// 求最高分和最低分maxminscores[0];for(i1;iN;i){if(scores[i]max)maxscores[i];if(scores[i]min)minscores[i];}averagesum/N;printf(平均分为%.2f\n,average);printf(最高分为%.2f\n,max);printf(最低分为%.2f\n,min);printf(不及格人数为%d\n,failCount);return0;}5.3 代码解析在输入循环中同时判断是否不及格一次遍历完成多项统计。求最值时先假设第一个元素为最大/最小值再逐一比较更新。这种「边输入边处理」的思路能有效减少循环次数提升效率。6. 常见错误与注意事项6.1 整数除法陷阱intsum95;doubleaveragesum/4;// 结果是 23.0而不是 23.75原因sum是int类型sum / 4先进行整数除法得到 23再转换为double。解决方法doubleaverage(double)sum/4;// 强制类型转换// 或doubleaveragesum/4.0;// 使用浮点数常量6.2 数组越界数组下标从0开始访问scores[N]会越界导致未定义行为。循环时务必注意边界条件。6.3 输入格式错误scanf中%lf对应double类型%f对应float类型混用会导致数据读取错误。7. 总结计算平均分是C语言入门阶段的经典练习通过本文的学习我们掌握了使用变量累加求平均的基础方法使用数组与循环处理批量数据使用动态内存分配处理不确定人数在求平均的同时扩展统计功能避免整数除法等常见陷阱。建议读者动手实践尝试将上述代码进行组合与扩展例如增加成绩排序、统计各分数段人数等功能进一步巩固C语言基础。
企业数字化 ERP 产品动态
相关推荐
用VSCode插件Bito配TaoToken:React类组件转函数组件实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 18:43:24
拆解如何做最强的社交网站:3年实战揭秘建站报价水分 拆解如何做最强的社交网站:3年实战揭秘建站报价水分 找建站公司是不是总担心被坑?看到报价单上几万甚至十几万,心里直打鼓,不知道这钱花得值不值。尤其是想做一个功能复杂的社交网站,那种“最强”的感觉往往伴随着高昂的【建站报价】,让人望而却步。… · 2026/9/27 18:43:24
零门槛本地部署OpenClaw的卸载教程:TaoToken 统一 Key 通道下的配置清理与验证 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 18:43:18
什么做婚车网站最大?揭秘防拖工期与多少钱的安全坑 什么做婚车网站最大?揭秘防拖工期与多少钱的安全坑 改个需求建站公司拖一周,这不仅是体验差,更是你的网站在裸奔。很多人盯着 多少钱 ,却忽略了背后藏着多少致命的安全漏洞。… · 2026/9/27 19:18:21
3套全网营销方案对比评测:告别模板丑站,转化率翻倍实战 3套全网营销方案对比评测:告别模板丑站,转化率翻倍实战 别再盯着那些一眼假的模板网站了。你的潜在客户点击进来的第一秒,看到的不是你的产品,而是那种“99元建站”的廉价感。这种视觉上的廉价感,直接杀死了你的品牌溢价,也切断了你的成交路径。… · 2026/9/27 19:18:21
AI编程:用TaoToken统一Key跑一个案例,对比CPU和GPU在深度学习方面的性能差异 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 19:18:14
大模型开源与闭源之争:TaoToken 统一 API 通道下,企业选型该看哪 0.3%? /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 19:18:08
手把手教你用 OpenClaw + Pangolinfo API 搭建亚马逊竞品调价实时预警系统(2026) /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 19:18:08
DeepSeek v4到底怎么样?用 TaoToken 统一 Key 实测配置与踩坑记录 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 19:18:02
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01