c - 使用数组做一个自习室预约程序

标签 c

我正在尝试用 C 语言编写一个程序,为用户提供一个预订自习室的菜单。
1. 预订房间
2. 腾出房间
3. 显示可用房间
4.退出
共有10间客房。我不确定如何在数组中使用更改值,其中 0 == 房间打开,1 == 房间关闭。

#include <stdio.h>

void print_arr(int room[], int elements);
int search_arr(int room[], int elements, int open);

int main(void)
{
    int room[10] = { 1, 1, 1, 1, 1, 1, 1, 0, 0, 0 }; // array for 10 rooms
    int result, open;

    print_arr(room, 10);

    open = 0;

    result = search_arr(room, 10, open);

    if (result == -1)
        printf("There are no open rooms. \n");
    else 
        printf("There are %d vacant Rooms. ", result);

return 0;
}

void print_arr(int room[], int elements)
{
    int i;

    printf("Rooms: ");
    for (i = 0; i < elements; i++)
    {
        printf("%d ", room[i]);
    }
    printf("\n");
}

int search_arr(int room[], int elements, int open)
{
    int i;
    for (i = 0; i < elements; i++)
    {
        if (room[i] == open)

            printf("Vacant Room: %d \n", room[i]);
            return(open);   //found open rooms
    }
return(-1); //no open rooms found
}

最佳答案

您必须计算数组中空闲(开放)房间的数量,例如:

int search_arr(int room[], int elements, int open)
{
 int free = 0;
 int i;
 for (i = 0; i < elements; i++)
 {
    if (room[i] == open) {
        printf("Vacant Room number: %d \n", i);
        free++;
    }
 }
 return(free); // return number of vacant rooms; 0 if no rooms are free ;-)
}

关于c - 使用数组做一个自习室预约程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25874042/

相关文章:

代码永远不会被执行 C

c - 使用三元运算符进行数组初始化?

c - 如何找到缓冲区溢出和内存损坏的地方?

c - #define 和声明有什么区别

c - 如何声明和定义 2 维字符串

c - 如何跟踪二分搜索算法中的最后一个索引?

c - 修改C中的时间函数

c++ - 从 C++ 链接到 C 库 : why isn't extern always needed?

c - 高效计算三个无符号整数的平均值(无溢出)

c - 如何在 C 的套接字上发送/接收字符串数组