Задача по структурам и функциям
Суть задачи: создать и проинициализировать 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 шт):
Не уверен, что правильно, но так работает
#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();
}