Главная » 2018 » Апрель » 17 » Структура. Поменять местами элементы с max и min возрастами
09:09
Структура. Поменять местами элементы с max и min возрастами

#include <iostream>
using namespace std;
struct person 
{
    char surname[20];
    char name[20];
    int age;
};
void vvod(person &x);
void vivod(person &x);
void vvod_mas(person *x, int k);
void vivod_mas(person *x, int k);
double srednee_znach(person *x, int k);
void swap_max_min(person *x, int k);
int main()
{
    setlocale(LC_ALL, "Russian");  
    const int n=3;
    person people[n];
    vvod_mas(people,n);
    cout<<"------- ***Begin БД *** -------"<<endl;
    vivod_mas(people,n);
    cout<<"------- *** End  БД *** -------"<<endl;
    cout<<"Средний возраст: "<<srednee_znach(people,n)<<endl;
    cout<<"Максимальный возраст: "<<endl;
    swap_max_min(people,n);
    cout<<"------- ***Begin БД *** -------"<<endl;
    vivod_mas(people,n);
    cout<<"------- *** End  БД *** -------"<<endl;
    system("pause");
    return 0;
}
void vvod(person &x)
{
    cout<<"Введите фамилию ";cin>>x.surname;
    cout<<"Введите имя ";cin>>x.name;
    cout<<"Введите возраст ";cin>>x.age;
}
void vivod(person &x)
{
    cout<<" "<<x.surname;
    cout<<" "<<x.name;
    cout<<" "<<x.age<<endl;
}
void vvod_mas(person *x, int k)
{
    for (int i=0;i<k;i++)
    {
        cout<<"----------------------------"<<endl;
        cout<<"Введите данные "<<(i+1)<<" человека из "<<k<<endl;
        vvod(x[i]);
    }
}
void vivod_mas(person *x, int k)
{
    for (int i=0;i<k;i++)
    {
        cout<<(i+1)<<") ";
        vivod(x[i]);
    }
}
double srednee_znach(person *x, int k)
{
    double s=0;
    for (int i=0;i<k;i++)
        s=s+x[i].age;
    return s/k;
}
void swap_max_min(person *x, int k)
{
    int max=x[0].age, min=x[0].age;
    int imax=0, imin=0;
    person temp;
    for (int i=0;i<k;i++)
        if (x[i].age>max)
        {
            max=x[i].age;
            imax=i;
        }
    for (int i=0;i<k;i++)
        if (x[i].age<min)
        {
            min=x[i].age;
            imin=i;
        }
    temp=x[imax];
    x[imax]=x[imin];
    x[imin]=temp;
}

Просмотров: 275 | Добавил: denjes | Рейтинг: 0.0/0
Всего комментариев: 0
avatar