如何在返回C中的值后回调函数

时间:2017-01-27 16:58:19

标签: c multidimensional-array

我写了一个使用2d数组的程序 我有两个功能,一个是提供选项菜单(我没有覆盖其中大部分),菜单调用另一个功能。

该功能正在实施一个菜单选项,即在剧院购买座位,如果用户想要的座位被取走,则该功能返回0,如果不是拍摄后,它会返回1并将座位值更改为-1。情况是当函数返回一个值,它结束,我知道为什么,但我怎么能再次使用它?

以下是菜单的代码:

void menu(int cinema[][SEATS_IN_ROW])
{
    int choice = 0;
    printf("Select an option:\n1 - Print cinema hall\n2 - Buy a ticket\n3 - Print number of taken seats\n4 - Make a seat discount\n5 - Set a new price for all seats\n6 - Exit\n");
    scanf("%d", &choice);

    switch (choice)
    {
        case 1:
        printCinema(cinema, ROWS);
        break;

        case 2:
        if(ticket(cinema) == 0)
        {
            printf("Seat taken!");
        }
        else
        {
            printf("You got the seat!");
        }
        break;
    }
}

这是第二个功能的代码(买座位):

   int ticket(int cinema[][SEATS_IN_ROW])
{   
    int rows = 0 , cols = 0;
    int flag = 0;

    printf("Which row (0-4)?\n");
    scanf("%d", &rows);
    printf("Which seat (0-2)?\n");
    scanf("%d", &cols);

    if(cinema[rows][cols] == -1)
    {
        flag = 0;
    }
    else
    {
        cinema[rows][cols] = -1;
        flag = 1;
    }
    return flag;
}

感谢。

1 个答案:

答案 0 :(得分:2)

你应该在menu()中有一个循环,以便它一直运行直到用户告诉它退出。