Задача по структурам и функциям

Суть задачи: создать и проинициализировать 3 структуры описываюшие автомобили. в структуре поля: наименование, скорость, год выпуска. Написать функцию которая будет определять максимальную скорость и выводить название и год выпуска авто с макс. скоростью. Написать функцию которая будет считать среднюю скорость для 3 автомобилей использую на вход массив структур. (потом массив указателей на структуры) Вызвать эти функции. и вывести в консоль результаты.

Также для надо написать функцию инициализации структуры. и написать функцию которая будет инициализировать структуры с использованием предыдущей функции. (потом написать функцию которая будет инитить структуры и формировать массив структур, а еще потом массив указателей на структуры) Возникла проблема, я не могу нормально написать функции с использованием структуры, целый день сижу и не могу ничего придумать. Можете не писать код просто подскажите в каком направлении двигаться и что делать, а то я просто не могу придумать ничего, вот мой код:

#include <iostream>
#include <conio.h>
#include <string>

using namespace std;

struct autoDescription
    {
        string autoName;
        int autoYear;
        int autoSpeed;
    };

autoDescription initStruct(string autoName, int autoYear, int autoSpeed)
{
    autoDescription Toyota;// = {"Toyota", 1995,180};
    autoDescription Nissan;// = {"Nissan", 2002,220};
    autoDescription Honda; //= {"Honda ", 2010,250};


    //desc1.autoName = "Toyota";
    //desc1.autoSpeed = 180;
    //desc1.autoYear = 1995;
    //desc1.autoName = "Nissan";
    //desc1.autoSpeed = 220;
    //desc1.autoYear = 2002;
    //desc1.autoName = "Honda ";
    //desc1.autoSpeed = 250;
    //desc1.autoYear = 2010;
}

void printStruct(autoDescription desc1)
{
    autoDescription Toyota;
    autoDescription Nissan;
    autoDescription Honda;
    cout << Toyota.autoName << Toyota.autoYear << Toyota.autoSpeed << "\n" << Nissan.autoName << Nissan.autoYear << Nissan.autoSpeed << "\n" << Honda.autoName << Honda.autoYear << Honda.autoSpeed << "\n";

    //printf("%s %c %d", desc1);
}

//void autoDesc1(autoDescription1 desc1)
//  {
//      desc1.autoName = "Toyota";
//      desc1.autoSpeed = 180;
//      desc1.autoYear = 1995;
//      cout << desc1.autoName << " Max speed is: " << desc1.autoSpeed << " Year of issue: " << desc1.autoYear << endl;
//  }
//void autoDesc2(autoDescription2 desc2)
//  {
//      desc2.autoName2 = "Nissan";
//      desc2.autoSpeed2 = 220;
//      desc2.autoYear2 = 2002;
//      cout << desc2.autoName2 << " Max speed is: " << desc2.autoSpeed2 << " Year of issue: " << desc2.autoYear2 << endl;
//  }
//void autoDesc3(autoDescription3 desc3)
//  {
//  desc3.autoName3 = "Honda ";
//  desc3.autoSpeed3 = 250;
//  desc3.autoYear3 = 2010;
//  cout << desc3.autoName3 << " Max speed is: " << desc3.autoSpeed3 << " Year of issue: " << desc3.autoYear3 << endl;
//
//  }
//void midSpeed()
//{
//  const int mSpeed = 3;
//  int allSpeed = desc1.autoSpeed + desc2.autoSpeed2 + desc3.autoSpeed3;
//  int avgSpeed = allSpeed / mSpeed;
//  cout << avgSpeed << endl;
//}

int main()
{   
    autoDescription Toyota;
    autoDescription Nissan;
    autoDescription Honda;

    initStruct("Toyota", 1995, 180);
    initStruct("Nissan", 2002, 220);
    initStruct("Honda ", 2010, 250);

    _getch();
}

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

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

Не уверен, что правильно, но так работает

#include <iostream>
#include <conio.h>
#include <string>

using namespace std;

struct autoDescription
    {
        string autoName;
        int autoYear;
        int autoSpeed;
    };

autoDescription initStruct(string autoName, int autoYear, int autoSpeed)
{
        autoDescription Toyota{ "Toyota", 1995, 180 };
        autoDescription Nissan{ "Nissan", 2002, 220 };
        autoDescription Honda { "Honda ", 2010, 250 };
        return Toyota,Nissan,Honda;
}

void printStruct(autoDescription Cars)
{
    autoDescription Toyota{ "Toyota", 1995, 180 };
    autoDescription Nissan{ "Nissan", 2002, 220 };
    autoDescription Honda { "Honda ", 2010, 250 };
    // addprintf
    cout << Toyota.autoName<< "\t" << Toyota.autoYear<< "\t" << Toyota.autoSpeed << "\n";
    cout << Nissan.autoName<< "\t" << Nissan.autoYear<< "\t" << Nissan.autoSpeed << "\n";
    cout << Honda.autoName<< "\t" << Honda.autoYear << "\t"<< Honda.autoSpeed << "\n";
}

int midSpeed()
{
    autoDescription Toyota { "Toyota", 1995, 180 };
    autoDescription Nissan { "Nissan", 2002, 220 };
    autoDescription Honda  { "Honda ", 2010, 250 };
    const int mSpeed = 3;
    int allSpeed = Toyota.autoSpeed + Nissan.autoSpeed + Honda.autoSpeed;
    int avgSpeed = allSpeed / mSpeed;
    cout <<"Avarage speed is: "<< avgSpeed << endl;
    return avgSpeed;
}

autoDescription massAuto(string autoName, int autoYear, int autoSpeed)
{
    autoDescription Toyota{ "Toyota", 1995, 180 };
    autoDescription Nissan{ "Nissan", 2002, 220 };
    autoDescription Honda { "Honda ", 2010, 250 };
    const int n = 3;
    autoDescription* ptrAuto;
    autoDescription masAuto[n];
    ptrAuto = masAuto;
    for (int i = 0; i < n; i++)
    {
        cout << ptrAuto[i].autoName << "\t" << ptrAuto[i].autoSpeed << "\t" << ptrAuto[i].autoYear << "\t\n";
    }
    return Toyota, Nissan, Honda;
}

int main()
{   
    autoDescription Toyota{ "Toyota", 1995, 180 };
    autoDescription Nissan{ "Nissan", 2002, 220 };
    autoDescription Honda { "Honda ", 2010, 250 };
    initStruct("Toyota", 1995, 180);
    initStruct("Nissan", 2002, 220);
    initStruct("Honda ", 2010, 250);
    printStruct(Toyota);
    midSpeed();
    //massAuto("Toyota", 1995, 180);
    //massAuto("Nissan", 2002, 220);
    //massAuto("Honda ", 2010, 250);

    _getch();
}
→ Ссылка