用指针实现,一个班有四个学生,每个学生有5门课程的成绩,实现三种函数的结果

阅读: 评论:0

用指针实现,一个班有四个学生,每个学生有5门课程的成绩,实现三种函数的结果

用指针实现,一个班有四个学生,每个学生有5门课程的成绩,实现三种函数的结果

//第三章的第15题,一个班级四个学生,5门课程
#include<stdio.h>
#include<math.h>
void aver(int (*p)[5])
{int i=0,j;float ave;
float sum=0;for(j=0;j<5;j++){sum+=*(*(p+i)+j);}ave=sum/4;//总共有四个学生printf("第一门课的平均分是:%fn",ave);}void oup(int (*p)[5],int *x)
{int n=0;//记录不及格的科目数是多少int i,j,t;float ave;float sum=0;for(i=0;i<4;i++){for(j=0;j<5;j++){if(*(*(p+i)+j)<60)n++;if(n>=2){printf("这个学生的学号是:%dn",*(x+i));for(t=i,j=0;j<5;j++){printf("学号为%d的学生的各科成绩为%dt",*(x+i),*(*(p+i)+j));sum+=*(*(p+i)+j);ave=sum/5;}printf("输出第%d学生的平均成绩为%fn",*(x+i),ave);}}}}//以上两个函数的实现均是正确的//再来看下面这个函数的实现是有问题的
void abov(int (*p)[5],int *x)
{int i,j,k;float ave,sum=0;for(i=0;i<4;i++){for(j=0;j<5;j++){sum+=*(*(p+i)+j);}ave=sum/5;//  for(k=0;k<5;k++)if(ave>90)printf("%d学号的学生n",*(x+i));}//平均数大于90或者没门课程都大于85,//或者的情况没有考虑}
int main()
{int a[4][5]={{35,56,67,78,98},{45,55,67,77,88},{34,45,56,67,78},{67,88,89,90,77}};//每个学生的五个课程是int b[4]={1,2,3,4};//学生的学号是这么多//  float *p(float);//定义一个指针函数aver(a);oup(a,b);abov(a,b);return 0;
}

自我感觉实现的第三个小题有点问题,比如找出所有科目的成绩均大于85或者是平均成绩在90以上的学生的学号是多少?我目前只考虑了一种平均成绩大于90的情况

 

本题为谭浩强第四版第八章的第15题

有很多不足的地方,大家感兴趣的话可以帮忙指正一下。

本文发布于:2024-01-29 18:10:36,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170652304117324.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:学生   三种   指针   函数   成绩
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23