Показать сообщение отдельно
Старый 14.01.2018, 20:55   #5 (permalink)
Olej
Member
 
Аватар для Olej
 
Регистрация: 10.01.2018
Сообщений: 36
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от semmmen98 Посмотреть сообщение
Определить: - имеется ли пассажир, багаж которого состоит из одной вещи массой менее m кг
Ввод исходных данных из файла я не показываю - это элементарно просто (массив пассажиров выписан прямо в коде), а всё остальное может выглядеть так:
Код:
#include <iostream>
#include <algorithm>
using namespace std;

struct bagazh {
   string owner;
   int    number;
   float  weight;
   inline friend  ostream& operator <<( ostream& out, const struct bagazh& obj ) {
      return out << "[ " << obj.owner << " | " 
                       << obj.number << " | " << obj.weight << " ]";
   }
};
   
int main( int argc, char** argv ) {
   float m = 12.;
   bagazh train[] = { 
      { "Иванов И.И.",  2, 12. }, 
      { "Петров П.П.",  1, 15. }, 
      { "Сидоров С.С.", 1, 9.  },
      { "Макаров М.М.", 1, 11. },
   };
   int size = sizeof( train ) / sizeof( train[ 0 ] ); 
   for( bagazh *i = train; i < train + size; ) { 
      i = find_if( i, train + size, [ m ]( bagazh& x )-> bool { 
         return 1 == x.number && x.weight < m; } );
      if( i < train + size ) 
         cout << *i++ << endl;
   } 
}
Выполнение:
Код:
$ g++ -Wall -std=c++11 -O3  bagazh.cc  -o bagazh

$ ./bagazh 
[ Сидоров С.С. | 1 | 9 ]
[ Макаров М.М. | 1 | 11 ]
Olej вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070