C语言数据结构单链表插入数据问题

请问假设这个我的形参是i和x从1到8,为什么输出的第一个参与人编号不是1啊?

img

修改如下,供参考:

int ListInsert(SingleLinkedList *head, int i, ElemType x)
{
    int j = 1;
    SingleLinkedList *p, *q;
    p = head;
    while (p && j < i)
    {
        p = p->next;
        j++;
    }
    if (!p || j > i)
            return 0;
    if((q = (SingleLinkedList*)malloc(sizeof(SingleLinkedList)))==NULL)
    {
            exit(1);
    }
    q->data = x;
    q->next = p->next;
    p->next = q;
    return 1;
}