Тип контейнера: Дек.
Задача для первого контейнера: Число положительных.
Условие выбора элементов: Некратные 3.
Задача для второго контейнера: Максимум.
ICQ: 319-516-748.
Если будет возможность вставьте комментарии, я бы очень хотел понять как это делается.
На текущий момент:
std::deque<int> d;
d.push_back(1); <== вот тут выдает ошибку
d.push_back(2);
d.push_back(3);
d.push_back(4);
for (int i = 0; i < d.size(); ++i)
{
if (d % 3 != 0)
cout << d << "\n";
}
Вот текст проги, нужно дек задать правильно и операцию правильно провести.
В моем варианте нужно вывести число положительых элементов из перовго контейнера (дека, т. е.), просто в строку, дальше отобрать некратные трем, отобранные ввести во второй контейнер (дек), и найти из нах максимальный, я в это примере дек не правильно задал... Потом исправлю...
Если кто знаком с контейнерами может поможет?
Не обращайте внимания на Form, StringGrid, это просто связь с моей формой, кнопкой и т. п.
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <list>
#include <deque>
#include <functional>
#include <algorithm>
//---------------------------------------------------------------------------
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
using namespace std;
typedef deque <int, list <int> > MyDeque;
int n; //Размер контейнера-дека
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N2Click(TObject *Sender)
{
exit(0);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N3Click(TObject *Sender)
{
ShowMessage(AnsiString("КЗИ-Д-2-1. Ф. Б. Исаходжаев. ВАРИАНТ № 17"));
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int j;
j=0;
while (StringGrid1->Cells[0][j]!="")
{StringGrid1->Cells[0][j]="";
j=j+1;
}
j=0;
while (StringGrid2->Cells[0][j]!="")
{StringGrid2->Cells[0][j]="";
j=j+1;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N1Click(TObject *Sender)
{
int j, a, elem;
int S;
MyDeque K1, K2;
j=0;
while (StringGrid1->Cells[0][j]!="")
{a=StrToInt(StringGrid1->Cells[0][j]);
K1.push(a);
j=j+1;
}
j=0;
while (!K1.empty())
{
elem=K1.front();
S=S+elem;
//ShowMessage("elem = "+IntToStr(elem));
if (elem % 3==0) {
K2.push(elem);
StringGrid2->Cells[0][j]=IntToStr(elem);
j++;
}
K1.pop();
//if (K1.empty()) ShowMessage("K1 пуста");
}
//ShowMessage("обработка L2");
Edit1->Text=IntToStr(S);
int max;
max=K2.front();
while (!K2.empty())
{
// ShowMessage("min = "+IntToStr(min));
K2.pop();
if (!K2.empty()){
if (max>K2.front()) min=K2.front();
}
}
Edit4->Text=IntToStr(min);
}
//---------------------------------------------------------------------------