设计一个程序,从键盘输入小于30个学生成绩当输入为999时,输入完毕开始计算.功能有:按“1”计算其平均数,并输出所小于平均数的数;按“2”从键盘上输入一个成绩,判定该成绩是否在数组中,若在则输出所在序号;按“3”统计并显示优、良、中、及格及不及格人数;按“4”显示本班级的最高分及最低分
1条回答 默认 最新
- 天际的海浪 2022-06-03 21:47关注
你代码逻辑不对 应该用while 循环输入,在循环中判断if(x==999)结束循环
参考下#include<stdio.h> void fun1(int a[], int n) { int i; float avg, sum=0; for(i=0;i<n;i++) sum += a[i]; avg = sum / n; printf("平均数:%.2f\n",avg); printf("小于平均数的数:"); for(i=0;i<n;i++) if (a[i]<avg) printf(" %d", a[i]); } void fun2(int a[], int n) { int i,x; printf("输入一个成绩:"); scanf("%d", &x); for(i=0;i<n;i++) if (a[i]==x) break; if (i<n) printf("%d所在序号:%d\n", x, i); else printf("数组中没有%d\n", x); } void fun3(int a[], int n) { int i; int sa = 0,sb = 0,sc = 0,sd = 0,se = 0; for(i=0;i<n;i++){ if (a[i]>=90) { sa++; } else if (a[i]>=80) { sb++; } else if (a[i]>=70) { sc++; } else if (a[i]>=60) { sd++; } else{ se++; } } printf("优秀人数:%d, 良好人数:%d, 中等人数:%d, 及格人数:%d, 不及格人数:%d",sa,sb,sc,sd,se); } void fun4(int a[], int n) { int i,max=0,min=0; for(i = 1; i < n; i++) { if (a[i]>a[max]) max = i; if (a[i]<a[min]) min = i; } printf("最高分:%d, 最低分:%d",a[max],a[min]); } int main() { int x,m,i,count=0; int a[30]; while (count<30) { scanf("%d", &x); if (x==999) break; a[count++] = x; } printf("按“1”计算其平均数,并输出所小于平均数的数;\n"); printf("按“2”从键盘上输入一个成绩,判定该成绩是否在数组中,若在则输出所在序号;\n"); printf("按“3”统计并显示优、良、中、及格及不及格人数;\n"); printf("按“4”显示本班级的最高分及最低分:\n"); scanf("%d", &m); if (m==1) { fun1(a,count); } else if (m==2) { fun2(a,count); } else if (m==3) { fun3(a,count); } else if (m==4) { fun4(a,count); } return 0; }
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 2020长安杯与连接网探
- ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
- ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
- ¥16 mybatis的代理对象无法通过@Autowired装填
- ¥15 可见光定位matlab仿真
- ¥15 arduino 四自由度机械臂
- ¥15 wordpress 产品图片 GIF 没法显示
- ¥15 求三国群英传pl国战时间的修改方法
- ¥15 matlab代码代写,需写出详细代码,代价私
- ¥15 ROS系统搭建请教(跨境电商用途)