Вывести фамилии сотрудников, номера телефонов которых начинаются с цифр 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. Если номер совпадает, то выводится фамилия работника.