编程实现:从键盘输入10个学生的成绩,统计并输出80分以上学生的人数。要求:①定义并使用自定义函数

编程实现:从键盘输入10个学生的成绩,统计并输出80分以上学生的人数。要求:①定义并使用自定义函数c语言编程实现:从键盘输入10个学生的成绩,统计并输出80分以上学生的人... 编程实现:从键盘输入10个学生的成绩,统计并输出80分以上学生的人数。要求:①定义并使用自定义函数c语言编程实现:从键盘输入10个学生的成绩,统计并输出80分以上学生的人数。要求:①定义并使用自定义函数int fun(float arr[],int n)实现统计80分以上人数的功能。②输入输出功能由主函数实现。(思考:①如何统计不及格学生的人数。②如何求出平均分 展开
 我来答
弈轩
2018-01-12 · 知道合伙人教育行家
弈轩
知道合伙人教育行家
采纳数:1029 获赞数:7544
电子设计大赛三等奖 优秀毕业生

向TA提问 私信TA
展开全部

如图

这样的程序可以吗?

追问可以获得源代码!

改进!加上不及格和平均分统计!而且还能防止非法输入!

源码如下:(C语言版,C++可以兼容)

//编程实现:从键盘输入10个学生的成绩,统计并输出80分以上学生的人数。
//要求:①定义并使用自定义函数int fun(float arr[],int n)实现统计80分以上人数的功能。
//②输入输出功能由主函数实现。
//(思考:①如何统计不及格学生的人数。②如何求出平均分
#include <stdio.h>
#include <malloc.h>
typedef struct fun_Total{
int goodNUM; //80分以上人数
int failNUM; //不及格人数
float ave; //平均分
}fun_Total;
fun_Total* fun(float arr[],int n)
{
int i;
fun_Total* R = (fun_Total*)malloc(sizeof(fun_Total)) ;
R->goodNUM=0;R->failNUM=0;R->ave=0;
for(i=0; i<n ;i++){
R->ave+=arr[i];
if(arr[i]>80)R->goodNUM++; //80以上即>80
else if(arr[i]<60)R->failNUM++;
}
R->ave/=n;
return R;
}
void main() 
{
int i=0,n=10;
float arr[10];
fun_Total *RT;
printf("请输入学生的分数(按回车完成每个人的成绩输入)\n");
for(i=0; i<n ;i++){
printf("第%d名学生分数=",i+1);
scanf("%f",&arr[i]);
if(arr[i]>100 ||arr[i]<0)
{
printf("输入非法!\t");
i--;
}
}
RT=fun(arr,n);
printf("\n80分以上的学生有%d人\n", RT->goodNUM );
printf("\n不及格的学生有%d人\n", RT->failNUM );
printf("\n平均分为%f\n", RT->ave);
free(RT);
}
怼嘚莳间
2018-01-12 · TA获得超过107个赞
知道小有建树答主
回答量:79
采纳率:33%
帮助的人:44.2万
展开全部
#include<stdio.h>
/********************************************************************************* 
*函数名: main
*参  数: none
*返回值: none
*描  述: 统计80分以上学生人数 
**********************************************************************************/
int fun(float arr[],int n);
int main(){
int studentCnt;
printf("请输入学生人数:");
scanf("%d",&studentCnt);
float score[studentCnt];
printf("请输入%d个学生的成绩:");
for(int i=0;i<studentCnt;i++)
scanf("%f",&score[i]);
int scoreCnt = fun(score,studentCnt);
printf("80分以上学生人数:%d\n",scoreCnt);
return 0;
}
int fun(float arr[],int n){
int count = 0;
for(int i=0;i<n;i++)
if(arr[i] > 80)
count++;
return count;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式