Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- // Теперь в класс добавлены геттеры для вызова
- class Car {
- private:
- char make[100];
- int cost;
- int weight;
- public:
- // Конструктор для инициализации класса
- Car() : cost(0), weight(0) {
- make[0] = '\0';
- }
- // Конструктор для заполнения параметров
- Car(const char* make, int cost, int weight) {
- strncpy(this->make, make, sizeof(this->make) - 1);
- this->make[sizeof(this->make) - 1] = '\0';
- this->cost = cost;
- this->weight = weight;
- }
- // Геттеры для вызова
- const char* getMake() const {
- return make;
- }
- int getCost() const {
- return cost;
- }
- int getWeight() const {
- return weight;
- }
- };
- // Функция чуть изменилась и теперь на геттерах
- bool is_more_expensive(const Car& car1, const Car& car2) {
- return car1.getCost() > car2.getCost();
- }
- void find_most_expensive_cars(Car cars[], int n) {
- Car* most_expensive[100]; // Массив для хранения самых дорогих автомобилей каждой марки
- int brand_count = 0; // Счетчик для уникальных брендов
- for (int i = 0; i < n; ++i) {
- bool found = false;
- for (int j = 0; j < brand_count; ++j) {
- if (strcmp(cars[i].getMake(), most_expensive[j]->getMake()) == 0) {
- if (is_more_expensive(cars[i], *most_expensive[j])) {
- most_expensive[j] = &cars[i];
- }
- found = true;
- break;
- }
- }
- if (!found) {
- most_expensive[brand_count] = &cars[i];
- ++brand_count;
- }
- }
- std::cout << "The most expensive cars among the presented brands:\n";
- for (int i = 0; i < brand_count; ++i) {
- std::cout << most_expensive[i]->getMake() << " - " << most_expensive[i]->getCost() << std::endl;
- }
- }
- int main() {
- int n;
- std::cout << "Enter the number of cars: ";
- std::cin >> n;
- Car* cars = new Car[n];
- for (int i = 0; i < n; ++i) {
- char make[100];
- int cost, weight;
- std::cin >> make >> weight >> cost;
- cars[i] = Car(make, cost, weight);
- }
- find_most_expensive_cars(cars, n);
- delete[] cars;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement