求C语言大神相助,我已经debug得要吐血了,题目是:有一个班4个学生5门课程:1.求第一门课程的平均分;

2.找出有两门以上课程不及格的学生,输出学号和群不课程成绩及平均成绩;3.找出平均成绩在90分以上或全部课程成绩在85分以上学生;请分别编写3个函数以满足上述要求。下面是... 2.找出有两门以上课程不及格的学生,输出学号和群不课程成绩及平均成绩;3.找出平均成绩在90分以上或全部课程成绩在85分以上学生;
请分别编写3个函数以满足上述要求。
下面是我的代码:
#include<stdio.h>
int main()
{
void aver1(float *p);
void search(float *p,float ave[4]);
void good(float *p,float ave[4]);
float score[4][5];
float ave[4],sum;
float *p;
int i,j;
for(i=0;i<4;i++)
for(j=0;j<5;j++)
{
scanf("%f",score[i][j]);
}
for(i=0;i<4;i++)
{
sum=0;
for(j=0;j<5;j++)
{
sum+=score[i][j];
}
ave[i]=sum/5.0;
}
p=&score[0][0];
aver1(*p);
search(*p,ave[4]); 不明白这三个调用函数的地方老是出错额……
good(*p,ave[4]);
return 0;
}
void aver1(float *p)
{
int i;
float sum=0;
for(i=0;i<4;i++)
{
sum+=*(p+5*i);
}
printf("the average of first lesson scores is: %7.2f\n",sum/4.0);
}
void search(float *p,float ave[4])
{
int i,j,k,m;
for(i=0;i<4;i++)
{
for(j=0;j<5;j++)
{
k=0;
if(*(p+5*i+j)<60) k+=1;
}
if(k>=2)
{
printf("NO.%d student has failed two more courses and the grades are:\n");
for(m=0;m<5;m++)
printf("%7.2f",*(p+m));
printf("the average is:%7.2f\n",ave[i]);
}
}
展开
 我来答
匿名用户
2015-05-07
展开全部
参数传递的问题

个人建议初学者不要用指针传输,等你后面搞明白了再用

内存速度现在都不是问题
更多追问追答
追问
我也知道自己不够熟悉,不过这是老师布置的作业,我跑了改了好几次还是错误一大堆……不知道能不能告诉我大概是哪里错了吗?是语法错还是其他?辛苦你了
追答
我感觉是你参数传递出错了

你在函数开头加入输出语言看看接收到的数字对不对
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式