输入10个学生的成绩,输出高于平均的成绩和人数 c语言编写,谢谢
1条回答 默认 最新
- a5156520 2022-12-11 19:12关注
我的思路如下:
1、用一个for循环来获取10个学生的成绩存入数组中,同时计算分数的和;
2、根据分数和求的平均分成绩,再用第二个for循环来遍历成绩数组,将高于平均分的成绩存入另外一个数组;
3、根据第二个for循环的计算结果来打印输出。(有个特例,当所有学生成绩都相同时,他们的分数即和平均分都相同,所以超过平均分的个数即为0)
代码如下:
参考链接:
c语言 int类型的可以和double类型的比较大小 - sky20080101 - 博客园#include <stdio.h> int main(void){ int scores[10]; float avg=0,sum=0; int i; printf("请输入10个学生的成绩:\n"); //获取10个学生的成绩到数组scores中 for(i=0;i<10;i++){ scanf("%d",&scores[i]); sum+=scores[i]; // 把每个学生的成绩累加到和中,以便下面计算平均分 } avg=sum/10; //根据分数的和来求平均分 int num=0; //超过平均分的成绩的个数,默认为0个 //printf("avg=%f\n",avg); int greaterAvg[10]; //存储超过凭据分成绩的数组 for(i=0;i<10;i++){ // https://www.cnblogs.com/sky20080101/articles/6405404.html if(scores[i]-avg>0){ // 如果当前分数大于平均分,则把这个分数存入 greaterAvg数组中 greaterAvg[num]=scores[i]; num++; // 超过平均分成绩的个数+1 } } // 打印结果 if(num>0){ printf("超过平均分的成绩有%d个,它们分别是:",num); for(i=0;i<num;i++){ printf("%d ",greaterAvg[i]); } }else{ //这个是特例,即当所有学生成绩都相同时,他们的分数都是平均分,所以超过平均分的个数为0 printf("超过平均分的成绩有%d个.",num); } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用 1
悬赏问题
- ¥15 minnio内存占用过大,内存没被回收(Windows环境)
- ¥65 抖音咸鱼付款链接转码支付宝
- ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
- ¥15 求螺旋焊缝的图像处理
- ¥15 blast算法(相关搜索:数据库)
- ¥15 请问有人会紧聚焦相关的matlab知识嘛?
- ¥15 网络通信安全解决方案
- ¥50 yalmip+Gurobi
- ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
- ¥15 itunes恢复数据最后一步发生错误