C/C++

Код программы на С+)))

Определить структурный тип, описывающий гостиничный
номер (название гостиницы, номер, комфортность (люкс, полулюкс стандарт,
эконом), количество человек, стоимость). Заполнить структурный массив 10-
ю записями. Переписать из исходного массива в другой массив, информацию
только о тех гостиничных номерах, в название гостиницы которых есть по 2
буквы «а». Затем новый массив отсортировать по названию гостиницы по
алфавиту.
 //Прошу прощения, но тут происходит переполнение памяти, так что выбирайте  
//1)Ручной ввод
//2)Оставить как есть (тут случайный ввод чисел)

#include
using namespace std;

enum comfort {luxe, standard, economy};

struct Hotel
{
string name;
int number;
comfort com;
};

Hotel Random(Hotel arr)
{
for (int i = 0; i < rand() % 20 + 10; i++)
{
arr.name.push_back(rand() % 26 + 'a');
}
arr.number = rand();
switch (rand() % 3)
{
case 0:
arr.com = luxe;
break;
case 1:
arr.com = standard;
break;
case 2:
arr.com = economy;
break;
}
return arr;
}

int counterArr(Hotel arr)
{
int count = 0;
for (int i = 0; i < arr.name.length(); i++)
{
if (arr.name[i] == 'a')
{
++count;
}
}
return count;
}

int main()
{
srand(time(NULL));
Hotel arr[10];
for (int i = 0; i < 10; i++)
{
arr[i] = Random(arr[i]);
}
int countArr = 0;
for (int i = 0; i < 10; i++)
{
if (counterArr(arr[i]) >= 2)
{
++countArr;
}
}

Hotel* newArr = new Hotel[countArr];
for (int i = 0, secArr = 0; i < 10; i++)
{
if (counterArr(arr[i]) >= 2)
{
newArr[secArr] = arr[i];
secArr++;
}
}

for (int i = 0; i < countArr; i++)
{
Hotel swap = newArr[i];
for (int j = i + 1; j < countArr; i++)
{
for (int q = 0; q < newArr[i].name.length() && q < newArr[j].name.length(); q++)
{
if (swap.name[q] < newArr[j].name[q])
{
swap = newArr[j];
break;
}
else
{
if (swap.name[q] != newArr[j].name[q])
{
break;
}
}
}
if (swap.name != newArr[i].name)
{
newArr[j] = newArr[i];
newArr[i] = swap;
}
}
}

for (int i = 0; i < 10; i++)
{
cout
Алексей Чурсин
Алексей Чурсин
458
Лучший ответ
Алексей Чурсин Спасибо за такой необычный вопрос. Надеюсь у Вас все будет работать хорошо!