#include <stdio.h>
#include "student.h"
void main()
{
float scroe[4][5]={{90,84,91,87,99},{61,52,43,55,75},{99,100,93,97,95},{98,69,58,69,78}};
printf("the 1 lession avm scroe:%lf\n",avm(*scroe,4));
selectbad(scroe,4);
selectgood(scroe,4);
}
//这里是在student.h文件的代码
float ave(float *p,int n);
void selectbad(float (*p)[5],int n);
void selectgood(float (*p)[5],int n);
//这里是在ave.c文件的代码
float ave(float (*p)[5],int n)
{
float s=*(*p);
float ave;
int i;
for(i=0;i<n;i++)
s+=*(*(p+i)+5);
ave=s/4;
return ave;
}
//这里是在selectbad.c文件的代码
void selectbad(float(*p)[5],int n)
{
int i,j,flag;
for(i=0;i<n;i++)
{
float ave,s=0;
flag=0;
for(j=0;j<5;j++)
{if(*(*(p+i)+j)<60)flag++;s+=*(*(p+i)+j);}
ave=s/5;
if(flag>1)
{
printf("the %d student fails,his scroe:\n",i+1);
for(j=0;j<5;j++)
printf("%lf\n",*(*(p+i)+j));
printf("his avm is %lf:\n",ave);
}
}
}
//这里是在selectgood.c文件的代码
void selectgood(float (*p)[5],int n)
{
int i,j,flag;
for(i=0;i<n;i++)
{
float ave,s=0;
flag=0;
for(j=0;j<5;j++)
{
s+=*(*(p+i)+j);
if(*(*(p+i)+j)>=85)flag++;
}
ave=s/5;
if(flag==5) printf("%d student all scroe>=85\n",i+1);
if(ave>=90) printf("%d student ave of scroe>=90\n",i+1);
}
}
这个练习原题目是这样的,有1个班4个学生,5门课程。①求第一门课程的平均分。②找出有2门以上课程不及格的学生,输出他们的学号和全部课程成绩及平均成绩③找出平均成绩在90分以上或者全部课程成绩在85分以上的学生。分别编3个函数实现以上3个要求。
上面是我写的。。总是会出现个警告,warning C4013: 'printf' undefined; assuming extern returning int,请大家帮我看看是怎么回事。
我是初学啊,写的程序有点乱,不好意思了。。