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

2020-09-25 教育 461阅读

如图

这样的程序可以吗?

追问可以获得源代码!

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

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

//编程实现:从键盘输入10个学生的成绩,统计并输出80分以上学生的人数。
//要求:①定义并使用自定义函数int fun(float arr[],int n)实现统计80分以上人数的功能。
//②输入输出功能由主函数实现。
//(思考:①如何统计不及格学生的人数。②如何求出平均分
#include 
#include 
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 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 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);
}
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com