Тема: Структури
Я не можу зрозуміти в чому код працює некоректно, допоможіть
1. Описати структуру з ім'ям WORKER, що містить наступні поля:
    - прізвище і ініціали працівника;
    - назва  посади;
    - рік надходження на роботу.
2. Написати програму, що виконує наступні дії:
- введення з клавіатури даних у масив, що складається з десяти структур типу WORKER; 
- записи повинні бути розміщені за алфавітом;
- вивід на дисплей прізвищ працівників, чий стаж роботи в організації перевищує значення, введене з клавіатури;
    - якщо таких працівників немає, вивести на дисплей відповідне повідомлення.
#include <iostream>
#include <conio.h>
#include <string.h>
#include <windows.h> 
#include <clocale>
using namespace std;
struct worker
{
    char pib[40];
    char posada[40];
    int year;
};
int main() 
{
    setlocale(LC_ALL,"Rus");
    
    int stazh, st, flag;
    char buf[40];
    worker brig[10];
    
    for (int i=0; i<10; i++)
        {        
            cout<<"Анкета № "<<i+1<<"."<<endl;
            cout<<"Прiзвище працiвника\t";
            cin>> brig[i].pib;
            cout<<"Назва посади\t";
            cin>> brig[i].posada;
            cout<<"Рiк надходження на роботу\t";
            cin>> brig[i].year;
            cout<<endl;
        }    
    for (int j=0; j<10; j++)
    {
        for (int i=0; i<10; i++)
        {    
            if (strcmp(brig[i].pib, brig[i+1].pib)>0)
            {    
                strcpy(buf, brig[i].pib);
                strcpy(brig[i].pib, brig[i+1].pib);
                strcpy(brig[i+1].pib, buf);
            }
        }
    }
cout<<"введiть стале значення стажу: ";
cin>>st; 
        
for (int i=0; i<10; i++)
        {
            stazh=(2015-brig[i].year);
            
            if (stazh>st)
            {
                flag=1;
                cout<<brig[i].pib;
                    cout<<"\n";            
            }
        }
    if (flag==0)
        cout<<"працiвникiв якi пiдходять пiд данi критерiї немає";
    
getch();
    return 0;
}