Главная »
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 |