Вывести фамилии сотрудников, номера телефонов которых начинаются с цифр 361 - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Сведения состоят из фамилий сотрудников и их телефонов. Вывести фамилии сотрудников, номера телефонов которых начинаются с цифр 361, 362 или 273.

Решение задачи: «Вывести фамилии сотрудников, номера телефонов которых начинаются с цифр 361»

textual
Листинг программы
#include <stdio.h>
 
typedef struct {
    char* first_name;
    char* surname;
    char* patronymic;
    char* phone_number;
} worker;
 
int check_phone_number(const char *prefix, const char *phone_number) {
    char character_prefix;
    char character_phone_number;
 
    if (!*prefix) {
        return 1;
    }
 
    while ((character_prefix = *prefix++) && (character_phone_number = *phone_number++)) {
        if (character_prefix != character_phone_number) {
            return 0;
        }
    }
 
    if (!character_phone_number) {
        return 0;
    }
 
    return 1;
}
 
int main(int argc, char **argv) {
    worker first_worker;
    worker second_worker;
    worker third_worker;
    worker forth_worker;
    worker list_workers[3];
 
    int i = 0;
    int j = 0;
    int part_phone_numbers[3] = { 361, 362, 273 };
 
    /* Инициализация полей работников */
    first_worker.first_name = "Петров";
    first_worker.surname = "Петр";
    first_worker.patronymic = "Иванович";
    first_worker.phone_number = "3618945";
 
    second_worker.first_name = "Сидоров";
    second_worker.surname = "Сидр";
    second_worker.patronymic = "Сидорович";
    second_worker.phone_number = "7598945";
 
    third_worker.first_name = "Иванов";
    third_worker.surname = "Иван";
    third_worker.patronymic = "Иванович";
    third_worker.phone_number = "3628945";
 
    list_workers[0] = first_worker;
    list_workers[1] = second_worker;
    list_workers[2] = third_worker;
 
    for (i = 0; i < 3; ++i) {
        for (j = 0; j < 3; ++j) {
            if (!check_phone_number(part_phone_numbers[j], list_workers[i].phone_number)) {
                printf("Номер работника %s %s %s совпал ", list_workers[i].first_name, list_workers[i].surname, list_workers[i].patronymic);
            }
        }
    }
 
}

Объяснение кода листинга программы

В данном коде реализована функция check_phone_number, которая проверяет, совпадает ли телефонный номер с заданным префиксом. Также в функции main создаются четыре работника с разными телефонными номерами, и происходит проверка, совпадают ли номера работников с префиксами 361 и 362. Если номер совпадает, то выводится фамилия работника.

Оцени полезность:

10   голосов , оценка 3.8 из 5
Похожие ответы