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

编程实现:从键盘输入10个学生的成绩,统计并输出80分以上学生的人数。要求:①定义并使用自定义函数c语言编程实现:从键盘输入10个学生的成绩,统计并输出80分以上学生的人数。要求:①定义并使用自定义函数int fun(float arr[],int n)实现统计80分以上人数的功能。②输入输出功能由主函数实现。(思考:①如何统计不及格学生的人数。②如何求出平均分

如图

这样的程序可以吗?

追问可以获得源代码!

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

源码如下:(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);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-01-12
#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;
}