c语言,学到结构体和函数了,想问下代码里printf语句无法输出的原因

问题遇到的现象和发生背景

printf语句无法输出

img

题目是这样的

img

问题相关代码,请勿粘贴截图
#include<stdio.h>
#include<malloc.h>
struct student
{
     __int64 num;
     char sex;
     char name[10];
     int score;
}st[100];
void work(int n,int max)
{
    int i,j;
    for(i=0;i<n;i++){
        if(st[i].score>max)
        max=st[i].score;
    }
    printf("最高分的学生是:\n");
    for(j=0;j<n;j++){
        
        
        if(st[j].score==max){
            printf("%d %c %s %d\n",st[j].num,st[j].sex,st[j].name,st[j].score);
            
        }    
    }
}
int main()
{
    int n,i,max;
    scanf("%d",&n);
    for(i=0;i<n;i++){
        scanf("%d %c %s %d",&st[i].num,&st[i].sex,st[i].name,&st[i].score);    
    }
    max=0;
    work(n,max);
return 0;    
}

运行结果及报错内容

img

我的解答思路和尝试过的方法
我想要达到的结果

img


测了一下你的输入值 学号 好像没存对
然后我把学号类型改了 测了一下

img