这个用c语言结构体咋写?

给定N个学生的基本信息,包括学号(由12个数字组成的字符串)、姓名(长度小于20的不包含空白字符的非空字符串)、高等数学成绩、C语言程序设计成绩,成绩均为[0,100]区间内的整数,要求统计C语言程序设计及格的人数,并按输入顺序给出C语言程序设计及格学生名单。

输入格式:

输入在一行中给出正整数N(≤10)。 随后N行,每行给出一位学生的信息,格式为“学号 姓名 高等数学成绩 C语言程序设计成绩”,中间以空格分隔。

输出格式:

首先在一行中输出C语言程序设计及格人数,然后按照输入顺序,每行输出一位该成绩及格的学生的学号和姓名,间隔一个空格。

输入样例:

3
201410300106 wanyun 70 88
201618050322 zhangyu 59 60
201509210118 lixiao 80 59

输出样例:

2
201410300106 wanyun
201618050322 zhangyu

题主找到答案没?

#include <stdio.h>
#include <string.h>

#define MAX_N 10

struct Student {
    char id[13];
    char name[21];
    int math;
    int c_language;
};

int main() {
    int n, i, passed_cnt = 0;
    struct Student students[MAX_N];

    scanf("%d", &n);

    for (i = 0; i < n; ++i) {
        scanf("%s%s%d%d", students[i].id, students[i].name, &students[i].math, &students[i].c_language);
        // 判断该学生是否 C 语言成绩及格
        if (students[i].c_language >= 60) {
            ++passed_cnt;
        }
    }

    printf("%d\n", passed_cnt);

    for (i = 0; i < n; ++i) {
        if (students[i].c_language >= 60) {
            printf("%s %s\n", students[i].id, students[i].name);
        }
    }

    return 0;
}