Помогите описать комбинированый тип, содержащий сведения о 7 самолётах авиакомпании (любой)

Проблема в том, что компилятор выбивает ошибку, я не знаю почему. Помогите написать код так, как это просится в задании. А задание такое: Описать комбинированный тип, содержащий сведения о самолетах авиакомпании: название /модель/ количество членов экипажа, количество пассажирских мест, технические характеристики (максимальная дальность полета, максимальная скорость, количество двигателей, бортовой номер.

Организовать базу данных, содержащих информацию о 7 самолетах, и инициализировать произвольными данными в программном коде записи о них, кроме последнего поля.

Реализовать следующие функции в программе:

а) ввод данных о бортовом номере каждого самолета;

б) вывод полной информации о самолетах в псевдотабличном виде (с отступлениями);

в) вывод названий и бортовых номеров самолетов, дальность перелета не больше 1600 км.

г) вычисление и отображение общей пассажировместимости авиапарка. Я старался решить задание, поэтому прилагаю код

#include <iostream> 
using namespace std; 
struct date 
{ 
 int flight; 
}; 
struct aviacompany 
{ 
 char plane1[20], planr2[20], plane3[20];  flight distance;  int num_zal;  float atestat; 
}; const int size=7; 
int main() 
{ 
 setlocale(LC_CTYPE, "ukr"); 
 aviacompany g[size]= {     

  {"Boeing 695","RA-85757" {2450},104}, //{имя самолета, бортовой номер{дальность перелёта},кол-во пасажиров}
  {"Boeing 660",   {2000},105}, 
  {"Boeing C-8",{1600},106}, 
  {"An-32,200ER", {1570},107}, 
  {"Boeing 345", {1400},108}, 
  {"Boenig C-6", {1130},110}, 
  {"Boeing 456", {1450},111},   
 };
 for(int i=0;i<size;i++) 
  cout<<i+1<<") "<<g[i].plane1<<" "<<g[i].plane2<<" "<<g[i].plane3<<" ("<<g[i].distance.flight<<") кол-во пасажиров"<<g[i].num_zal<<endl; 
 cout<<endl<<">1600"<<endl;  for(int i=0;i<size;i++) 
  if(g[i].distance.flight>=1600) cout<<i+1<<") "<<g[i].plane1<<" "<<g[i].plane2<<endl;  cout<<endl<<":"<<endl; 
 return 0; } 

Ответы (2 шт):

Автор решения: DmitryK

В struct aviacompany тип данных неправильно указан.

struct aviacompany 
{ 
  planr2[20], // а здесь синтаксическая ошибка
  flight distance;

А должно быть

struct aviacompany 
{ 
  plane2[20], 
  data distance;

Инициализируйте все поля структуры (можно пропускать поля с конца). Но лучше не надо, запишите хоть какие-то значения. А лучше сделайте конструктор по умолчанию и инициализируйте поля структуры значениями по умолчанию.

aviacompany g[size]= {     
  {"Boeing 695","RA-85757", "", {2450},104,0.0}, 
  {"Boeing 660", "", "", {2000},105}, // не инициализировано последнее поле
  {"Boeing C-8", "", "", {1600},106}, 
  {"An-32,200ER",  "", "", {1570}}, // не инициализировано 2 последних поля
  {"Boeing 345",  "", "", {1400},108,0.0}, 
  {"Boenig C-6",  "", "", {1130},110,0.0}, 
  {"Boeing 456",  "", "", {1450},111,0.0},   
 };

И пассажиры пишется с 2 с!

→ Ссылка
Автор решения: yspesny
#include <iostream>
using namespace std;

const int SIZE = 7;
int passenger_capacity = 0;

struct airplane
{
    char name[20];
    char model[20];
    int number_of_crew;
    int number_of_seats;
    float max_dist;
    float max_speed;
    int number_of_engines;
    char side_number[20];
};

void print_all_info(airplane airplane_m[]) {
    cout << "Название\t" << "Модель\t" << "Кол.эк\t" << "Кол.мест\t" << "Макс.дист\t" << "Макс.cкор\t" << "Кол.двиг\t" << "№ Борт\n";

    for (int i = 0; i < SIZE; i++) 
        cout << airplane_m[i].name << "\t\t" << airplane_m[i].model << "\t" << airplane_m[i].number_of_crew << "\t" << airplane_m[i].number_of_seats
        << "\t\t" << airplane_m[i].max_dist << "\t\t" << airplane_m[i].max_speed << "\t\t" << airplane_m[i].number_of_engines << "\t\t" << airplane_m[i].side_number << "\n";   

    cout << endl;
}

int main()
{
    setlocale(LC_CTYPE, "ru");

    airplane airplane_m[SIZE];
    airplane_m[0] = {"Boeing", "695", 15, 110, 2300.52, 600.82, 4, "RA-512"};
    airplane_m[1] = {"Boeing", "660", 14, 123, 2000.12, 332.57, 2, "64452"};
    airplane_m[2] = {"An-32", "С-8", 13, 150, 2100.53, 621.6, 6, "EI-XLL" };
    airplane_m[3] = {"Boeing", "200ER", 10, 210, 1500.72, 823.15, 4, "N232CL" };
    airplane_m[4] = {"Boeing", "345", 16, 132, 1400.23, 415.7, 4, "HD-1252" };
    airplane_m[5] = {"Boeing", "C-6", 13, 162, 1523.15, 512.2, 6, "GAG-2" };
    airplane_m[6] = {"Boeing", "456", 15, 152, 1351.62, 563.3, 4, "LOL" };

    for (int i = 0; i < SIZE; i++)
        cout << "Бортовой номер " << i+1 << " - " << airplane_m[i].name << "\n";

    cout << endl;

    print_all_info(airplane_m);

    cout << "Название " << "Бортовой номер\t" << "Макс. дист\n";
    for (int i = 0; i < SIZE; i++)
        if (airplane_m[i].max_dist < 1600) cout << airplane_m[i].name << "\t" << airplane_m[i].side_number << "\t\t" << airplane_m[i].max_dist << "\n";

    cout << endl;
    cout << "Общая пассажировместимость авиапарка: ";

    for (int i = 0; i < SIZE; i++)
        passenger_capacity += airplane_m[i].number_of_seats;

    cout << passenger_capacity;

    system("pause >> null");
    return 0;
}
→ Ссылка