C语言问题 关于结构体数组 求祝

有8个学生的数组存放于结构数组a中,每个学生记录由学号num和成绩score组成,编写程序,使其实现:
(1)自定义函数1,用来输入8个学生的信息,该函数在main中调用
(2)自定义函数2,用于统计所有学生的平均成绩aver,并将值返回main中
(3)自定义函数3,用于打印成绩大于等于平均值的学生记录
(4)main中调用以上3个函数

同学你好,可以参考我以往的答案,同样的题目:
初学者,实在不会,各位大lao这个该怎么做啊-编程语言-CSDN问答

 
#include <stdio.h>
#define N 8//8个学生
struct stu{
    char num[100];//学号
    float score;//成绩
}; 
int info(struct stu s[]){//录入学生信息 
    int i;
    for (i=0;i<N;i++){
        printf("请输入第%d个学生的学号:\n",i+1);
        scanf("%s",&s[i].num);
        printf("请输入第%d个学生的成绩:\n",i+1);
        scanf("%f",&s[i].score);    
    }
    return 0;
}
float average(struct stu s[]){//求平均 
    int i;
    float ave;
    ave = 0;
    for (i=0;i<N;i++) ave+=s[i].score;//相加
    return ave/N;//返回平均
}
int print(struct stu s[], float ave){//打印
    int i;
    printf("学号\t成绩(大于平均)\n");
    for (i=0;i<N;i++){
        if(s[i].score>ave)
        {
            printf("%s\t%.2f\n",s[i].num,s[i].score);
        }
    }
    return 0;
}
int main(){
    float ave;
    struct stu s[N];
    info(s);//录入信息
    ave = average(s);//求平均
    printf("平均分=%.2f\n",ave);
    print(s,ave);//打印
}

N=2的效果

img

哪一部分你不熟练啊

typedef struct _student{
int num;
float score;
}student;
student a[8];
void fun1()
{
    for(int i=0;i<8;i++)
        scanf("%d%f",&a[i].num,&a[i].score);
}
float fun2()
{
    float sum = 0;
    for(int i=0;i<8;i+++)
        sum += a[i].score;
    return sum/8;
}

void fun3(float avg)
{
    for(int i=0;i<8;i++)
    {
        if(a[i].score >= avg)
        {
            printf("%d  %f\n",a[i].num,a[i].score);
        }
    }
}
int main()
{
      float avg = 0;
      fun1();
      avg = fun2();
      fun3(avg);
      return 0;
}