Определить тип данных структура, имеющий поля фамилия, страна и результаты шести выступлений. Определить массив из 10 структур. В программе ввести в массив данные и вывести на экран список спортсменов по странам. Определить спортсмена занявшие последние место.си++
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
struct sports
{
char famil[15];
char strana[15];
int vistup1;
int vistup2;
int vistup3;
int vistup4;
int vistup5;
int vistup6;
}mas[10];
Answers & Comments
Ответ:
#include<iostream>
#include<windows.h>
using namespace std;
struct Sponsor
{
char name[32];
char surname[32];
double sum;
};
Sponsor* AddStruct(Sponsor* Obj, const int amount);
void setData(Sponsor* Obj, const int amount);
void showData(const Sponsor* Obj, const int amount);
int main()
{
setlocale(LC_ALL, "rus");
Sponsor* OurSponsors = 0;
int sponsorAmount = 0;
int YesOrNot = 0; // продолжить или остановить ввод данных
do
{
OurSponsors = AddStruct(OurSponsors, sponsorAmount);
setData(OurSponsors, sponsorAmount);
sponsorAmount++;
cout << "Продолжить ввод данных (1 - да, 0 - нет): ";
cin >> YesOrNot;
cin.get();
} while (YesOrNot != 0);
showData(OurSponsors, sponsorAmount);
delete[] OurSponsors;
return 0;
}
Sponsor* AddStruct(Sponsor* Obj, const int amount)
{
if (amount == 0)
{
Obj = new Sponsor[amount + 1]; // выделение памяти для первой структуры
}
else
{
Sponsor* tempObj = new Sponsor[amount + 1];
for (int i = 0; i < amount; i++)
{
tempObj[i] = Obj[i]; // копируем во временный объект
}
delete [] Obj;
Obj = tempObj;
}
return Obj;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void setData(Sponsor* Obj, const int amount)
{
cout << "Фамилия: ";
cin.getline(Obj[amount].surname, 32);
cout << "Имя: ";
cin.getline(Obj[amount].name, 32);
cout << "Сумма пожертвования: ";
cin >> Obj[amount].sum;
cin.get();
cout << endl;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void showData(const Sponsor* Obj, const int amount)
{
system("cls");
cout << "№ " << "Фамилия\t" << "Имя\t" << "Сумма\t" << endl;
cout << "========================================" << endl;
for (int i = 0; i < amount; i++)
{
cout << i + 1 << " " << Obj[i].surname << '\t' << Obj[i].name << '\t' << Obj[i].sum << endl;
}
}
Объяснение: