Gosvo" не определяет этот оператор или преобразование к типу приемлемо к встроенному оператору
Для индекса требуется массив или указатель
Все ошибки в конце кода в строчках цикла
#include <iostream>
using namespace std;
enum stran {
Belarus, Brasiliya, Iran
};
union no {
int people;
int s;
};
struct Gosvo
{
no a;
char name:30;
char sity;
stran b;
};
int main()
{
setlocale(LC_ALL, "Russian");
Gosvo f;
f.a.people = 9;
f.name = Belarus;
f.a.s = 2;
Gosvo k;
k.a.people=213;
k.name = Brasiliya;
k.a.s=8;
Gosvo l;
l.a.people = 83;
l.name = Iran;
l.a.s = 16;
Gosvo gosvos[3];
gosvos[0] = f;
gosvos[1] = k;
gosvos[2] = l;
int n;
cout << "Введите количество структур в массиве:";
cin >> n;
for (int i = 0; i <= n; i++) {
for (int j = 0; j < n - 1; j++)
{
if (gosvos[j] > gosvos[j + 1])
{
int b = gosvos->name[j]; // создали дополнительную переменную
gosvos->name[j] = gosvos->name[j + 1]; // меняем местами
gosvos->name[j + 1] = b; // значения элементов
}
}
cout << gosvos->name[i] << " "; // выводим элементы массива
}
return 0;
}