Тема: Виправте код. Задача з масивом структур
Задача звучить наступним чином. "Створити масив структур, що містить інформацію про співробітників приватної клініки. Кожна структура містить поля - прізвище лікаря, спеціалізація, стаж роботи. Написати програму, яка видає наступну інформацію: список лікарів за спеціалізацією Х із зазначенням стажу роботи; середній стаж співробітників клініки. Спеціалізація Х вводиться за запитом з клавіатури."
Я написала код з використанням функцій, але він не працює так, як треба: або виводить забагато, або взагалі не виводить нічого.
#include <iostream> 
#include "windows.h"
#include <clocale>
#include <conio.h>
#include "stdio.h"
using namespace std;
struct book {
    char surname[30];
    char special[40];
    int year;
};
void show(const book obj[], int n)
{
    char special[40];
    char spec[40];
    cout << "Введіть шукану спеціалізацію: ";
    cin.getline(spec, 40);
    for (int i = 0; i < n; i++)
    {
        for (int k = 0; k < n; k++) {
        if (special[40] == spec[k])
            cout << "\nПрізвище:\t" << obj[i].surname << "\tСтаж роботи:\t" << obj[i].year << endl;
        }
    }
}
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    const int n = 3;
    book array[n] = {};
    for (int i = 0; i < n; i++)
    {
        cout << "Прізвище: ";
        cin.getline(array[i].surname, 30);
        cout << "Спеціалізація: ";
        cin.getline(array[i].special, 40);
        cout << "Стаж роботи: ";
        cin >> array[i].year;
        cin.get();
    }
    show(array, n);
    _getch();
    system("pause");
    return 0;
}