设计一个程序,从键盘输入小于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 高价求中通快递查询接口
- ¥15 解决一个加好友限制问题 或者有好的方案
- ¥15 关于#java#的问题,请各位专家解答!
- ¥15 急matlab编程仿真二阶震荡系统
- ¥20 TEC-9的数据通路实验
- ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
- ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
- ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
- ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
- ¥15 如何实现H5在QQ平台上的二次分享卡片效果?