1

我有这个功能的问题。当我调用它时,客户端应该从最后一个(尾部)打印到第一个(头部)。

问题是我想从第一个(头部)到最后一个(尾部)打印它们。我尝试过的一切要么导致分段错误,要么只打印第一个客户端。

请注意,该程序是关于银行的。我有一个客户队列,我想按顺序打印。

先感谢您!

void printAll(clientData* tail) {
    clientData *current;
    current = tail;
    if (current == NULL) {
        printf("There is no client in queue\n");
        return ;
    }
    while (current != NULL) {
        printf("%s %s %d/%d/%d %s %s %s %s\n",
            current->firstname,
            current->lastname,
            current->birthday.day,
            current->birthday.month,
            current->birthday.year,
            current->bankaccount,
            current->telephone,
            current->email,
            current->bankcommand);

        current = current->next;
    }
    return;
}
4

1 回答 1

4

你需要的是一个堆栈。当您递归调用函数时,您的系统会自动为您提供一个:

void printAll(clientData* current)
{
    if (current->next != NULL) {
        printAll(current->next);
    }
    printf("%s %s %d/%d/%d %s %s %s %s\n", current->firstname,current->lastname,current->birthday.day,current->birthday.month,current->birthday.year,current->bankaccount,current->telephone,current->email,current->bankcommand);
}
于 2013-05-23T18:58:32.697 回答