C语言程序,有点难到了

img


这个程序真的很有意思,就是不怎么会写,寻有缘人解开这个谜题,真的很有趣,大家可以思考一下


#include <stdio.h>

void query(int **table, int n, int stuID)
{
    for (int i = 0; i < n; i++)
    {
        if (table[i][0] == stuID)
        {
            printf("%10d", table[i][0]);
            for (int j = 1; j < 5; j++)
                printf("%4d", table[i][j]);
            printf("\n");
            return;
        }
    }
    printf("%10d", stuID);
    for (int j = 0; j < 4; j++)
        printf("%4d", -1);
    printf("\n");
}
void queryAll(int **table, int n)
{
    for (int i = 0; i < n; i++)
    {
        printf("%10d", table[i][0]);
        for (int j = 1; j < 5; j++)
            printf("%4d", table[i][j]);
        printf("\n");
    }
}

int main()
{
    int n, m, i, j, t;
    int **stu, *sch;
    scanf("%d%d", &n, &m);

    stu = (int **)malloc(sizeof(int *) * n);
    for (i = 0; i < n; i++)
        stu[i] = (int *)malloc(sizeof(int) * 5);

    sch = (int *)malloc(sizeof(int) * m);
    for (i = 0; i < n; i++)
        for (j = 0; j < 5; j++)
            scanf("%d", &stu[i][j]);

    for (i = 0; i < m; i++)
        scanf("%d", &sch[i]);

    for (i = 0; i < m; i++)
        query(stu, n, sch[i]);

    queryAll(stu, n);

    return 0;
}