Функции C-Structures - PullRequest
       2

Функции C-Structures

0 голосов
/ 17 февраля 2019
#include <stdio.h>
#include <string.h>
#define MAXLEN 41
typedef char string25[26];
typedef char string40[41];

struct RoomInfo
{
    char RoomCode;
    int RoomCap, NumOfRooms;
    float WeekDayRate, WeekEndRate, RatePerGuest;
};

struct RoomInfo GetRecords()
{
    struct RoomInfo OneRoom;
    printf("Room Code:");
    scanf(" %c", &OneRoom.RoomCode);
    while (!(OneRoom.RoomCode >= 'a' && OneRoom.RoomCode <= 'z' || OneRoom.RoomCode >= 'A' && OneRoom.RoomCode <= 'Z'))
    {
        printf("Input not Valid,Enter Another:");
        scanf("%c", &OneRoom.RoomCode);
    }

    printf("Room Capacity:");
    scanf("%d", &OneRoom.RoomCap);
    while (OneRoom.RoomCap < 1 || OneRoom.RoomCap > 12)
    {
        printf("Input not Valid,Enter Another:");
        scanf("%d", &OneRoom.RoomCap);
    }
    printf("Number of Rooms with this Capacity:");
    scanf("%d", &OneRoom.NumOfRooms);
    while (OneRoom.RoomCap < 1 || OneRoom.RoomCap > 40)
    {
        printf("Input not Valid,Enter Another:");
        scanf("%d", &OneRoom.NumOfRooms);
    }
    printf("Weekday Rate:");
    scanf("%f", &OneRoom.WeekDayRate);
    printf("Weekend Rate:");
    scanf("%f", &OneRoom.WeekEndRate);
    printf("Rate per Guest:");
    scanf("%f", &OneRoom.RatePerGuest);

    return OneRoom;
}

void GetMultipleRecords(struct RoomInfo Booking[], int n)
{
    int i;
    for (i = 0; i < n; i++)
        Booking[i] = GetRecords();
}

struct ClientInfo
{
    string25 LastName, FirstName;
    string40 Email;
    char RoomCode;
    int TotGuests, Day, NumDays;
};

struct ClientInfo GetInfo()
{
    int j;
    struct ClientInfo OneClient;
    struct RoomInfo OneRoom[10];
    printf("Last Name:");
    scanf("%s", OneClient.LastName);
    printf("First Name:");
    scanf("%s", OneClient.FirstName);
    printf("Email Address:");
    scanf("%s", OneClient.Email);
    printf("Room Code:");
    scanf(" %c", &OneClient.RoomCode);
    if (OneClient.RoomCode == OneRoom[0].RoomCode)
        OneClient.TotGuests = OneRoom[0].RoomCode;
    printf("Total Number of Guests(max %d):", OneRoomClient.TotGuests);
    scanf("%d", OneClient.TotGuests);

    printf("What day of the week?:");
    scanf("%c", &OneClient.Day);
    printf("Number of Days of Stay");
    scanf("%c", &OneClient.NumDays);

    return OneClient;
}

void GetMultipleClient(struct ClientInfo Data[], int n)
{
    int i;
    for (i = 0; i < n; i++)
    {
        Data[i] = GetInfo();
    }
}

int main()
{
    struct ClientInfo Data[10];
    struct RoomInfo Bookings[10];

    int n = 1;
    GetMultipleRecords(Bookings, n);
    GetMultipleClient(Data, n);

    return 0;
}

Вот весь мой код, и я хочу что-то сделать с этой частью:

printf("Room Code:");
scanf(" %c", &OneClient.RoomCode);
if(OneClient.RoomCode == OneRoom[0].RoomCode)
    OneClient.TotGuests=OneRoom[0].RoomCode;
printf("Total Number of Guests(max %d):", OneRoomClient.TotGuests);

Я хочу напечатать в «Общее количество гостей (макс.% D):» соответствующийномер, введенный в RoomInfo, если введенный клиентом код в информации о клиенте и код, введенный в RoomInfo, соответствуют друг другу.Как я могу это сделать?Я пытался использовать указатели, но я не могу понять это правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...