c语言结构 不知道哪出问题了输出的结果不太对

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
#include<stdio.h>
#include<string.h>
#define N 5
typedef struct Student
{
    char num[10];
    int score;
}Stu;
void fun(struct Student a[],struct Student *s)
{
    int i,b;
    s=&a[0];
    for(i=0;i<N;i++)
    {
        for(b=1;b<=N-i-1;b++)
        {
            if(a[i].score>a[i+b].score)
            *s=a[i+b];
            else
            *s=a[i];
        }
    }
}
int main()
{
    void fun(struct Student a[],struct Student *s);
    int i;
    Stu a[N]={{"001",66},{"002",150},{"003",76},{"004",200},{"005",77}};
    struct Student *Stu1;
    fun(a,Stu1);
    printf("最低学生记录:%s,%d",a[i].num,a[i].score);
}

你这里问题还蛮多的


#include<stdio.h>
#include<string.h>
#define N 5

typedef struct Student
{
    char name[4];
    int score;
}Stu;
void fun(struct Student a[], struct Student* s)
{
    int  b;
    for (int i = 0; i < N; i++) {
        if (s->score > a[i].score) {
            *s = a[i];
        }
    }
}
int main()
{
    void fun(struct Student a[], struct Student* s);
    Stu a[N] = { {"001",66},{"002",150},{"003",76},{"004",200},{"005",77} };
    Stu *Stu1=a;
    fun(a, Stu1);
    printf("最低学生记录:%s,%d", Stu1->name, Stu1->score);
    return 0;
}