C++报错代码C6273C4473如何解决

新手上路,请各位帮忙看下如下报错,如何处理,谢谢!

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn = 1000;

struct Student {
    char id[3];
    int score;
    int location_number;
    int local_rank;

}stu[maxn];

bool cmp(Student a, Student b) {
    if (a.score != b.score) return a.score > b.score;
    else return strcmp(a.id, b.id) < 0;
}

int main() {
    int n, k, num = 0; //num为总考生数
    scanf_s("%d", &n);//n为考场数
    for (int i = 1; i <= n; i++) {
        scanf_s("%d", &k);//该考场内人数
        for (int j = 0; j < k; j++) {
            scanf_s("%s %d", stu[num].id, &stu[num].score);
            stu[num].location_number = i;
            num++;
        }
        sort(stu + num - k, stu + num, cmp);
        stu[num - k].local_rank = 1;
        for (int j = num - k + 1; j < num; j++) {
            if (stu[j].score == stu[j - 1].score) {
                stu[j].local_rank = stu[j - 1].local_rank;
            }
            else {
                stu[j].local_rank = j + 1 - (num - k);
            }
        }
    }
    printf("%d", num);
    sort(stu, stu + num, cmp);
    int r = 1;
    for (int i = 0; i < num; i++) {
        if (i > 0 && stu[i].score != stu[i + 1].score) {
            r = i + 1;
        }
        printf("%s", stu[i].id);
        printf("%d %d %d\n", r, stu[i].location_number, stu[i].local_rank);
    }
    return 0;
}

img

scanf_s没用用对,还是用scanf吧,然后把安全报错取消就行