Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- // ООП - Начало
- class Car {
- public:
- char make[100]; // Это лимит для брендов, подсмотрено в интернете
- int cost;
- int weight;
- // Дефолтный конструктор для инициализации класса
- Car() : cost(0), weight(0) {
- make[0] = '\0';
- }
- // С параметрами, он их принимает и копирует
- Car(const char* make, int cost, int weight) {
- int i = 0;
- while (make[i] != '\0' && i < 99) {
- this->make[i] = make[i];
- ++i;
- }
- this->make[i] = '\0';
- this->cost = cost;
- this->weight = weight;
- }
- };
- // Функции на занятии не было, но она была бы такой:
- bool is_more_expensive(const Car& car1, const Car& car2) {
- return car1.cost > car2.cost;
- }
- // Простой поиск циклами, здесь я циклом проверяю есть ли авто марки в массиве самых дорогих и записываю или перезаписываю
- 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].make, most_expensive[j]->make) == 0) { // strcmp тоже подсмотрена, это для принятия двух аргументов
- 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]->make << " - " << most_expensive[i]->cost << 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);
- } // Тут завожу через CIN, чтобы заходило видом Audi 10 5
- find_most_expensive_cars(cars, n);
- delete[] cars;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement