#include<iostream>
#include<ctime>
#include<fstream>
#include<vector>
#include<iterator>
#include<algorithm>
using namespace std;
pr_vec(vector<int>A)
{
for(int i=0; i<A.size(); i++)
cout<<A[i]<<' ';
cout<<endl;
}
///////////////////////////////////////////////////////////////////////
int main(){
setlocale(LC_ALL, "russian");
int x, min;
ifstream A("a.txt"); // читаем файл а.
if(!A)
{
cout<<"Error"<<endl; // проверяем на открытие(ошибку)
return 1;
}
while(!A.eof()) // читаем файл до последней строчки
{
A>>x;
// cout<<x<<endl;
}
A.close();
A.open("a.txt"); //снова открываем файл чтобы с ним работать
if(!A)
{
cout<<"Error"<<endl;
return 1;
}
ofstream B("b.txt"); // открываем(создаем) новый файл на запись
if(!B)
{
cout<<"Error"<<endl;
return 1;
}
A>>min;
while(!A.eof())
{
A>>x;
if ((x%2==0)&&(x<min) )min=x;
//cout<<min<<endl;
}
cout<<"В файл 'b' было записано минимальное значение предложенных чисел"<<endl<<endl;
B<<min<<endl;
A.close();
B.close();
A.open("a.txt"); //снова открываем файл чтобы с ним работать
if(!A)
{
cout<<"Error"<<endl;
return 1;
}
//////////////////////////////////////////////////////////////////////////////////////////
int n;
vector<int>MyVector;
vector<int>::iterator it;//создаем итератор
ifstream C("a.txt");
while(!C.eof())
{
C>>n;
MyVector.push_back(n);
// cout<<n<<endl;
}
C.close();
////////////начинаем обработку////////////////////////////////
for(int t=1; t!=11; t++){
int sum=0;
for(int i=0; i<MyVector.size();i++)
{
sum=sum+MyVector[i];
}
//cout<<"Суммарное значение вектора: "<<sum<<endl;
MyVector.insert(MyVector.begin(),sum);
int min1;//не хочет циклично удалять минимум
for (int i=0; i< MyVector.size(); i++)
{
if(MyVector[i]<min1)
min1=MyVector[i];
}
MyVector.erase(remove(MyVector.begin(), MyVector.end(), min1), MyVector.end());
cout<<"Минимальное значение вектора: "<<min1<<endl;
cout<<"Проход: "<<t<<endl;
pr_vec(MyVector);
}
ofstream Q("c.txt"); // открываем(создаем) новый файл на запись
if(!Q)
{
cout<<"Error"<<endl;
return 1;
}
for(int i=0; i<MyVector.size(); i++)
Q<<MyVector[i]<<endl;
Q.close();
cout<<endl;
cout<<"В файл 'c' был записан итоговый вектор с десятью проходами по подсчету суммы и удалению минимума"<<endl;
system ("pause");
return 0;
}
Вот весь мой код.
у меня есть файл а, где через enter 12 действительных чисел. от туда я нахожу четное минимальное число и пишу его в файл b. тут все ок. дальше я должна создать вектор из чисел файла а(ок) посчитать сумму(ок), поставить ее пере всем вектором(ок) найти минимум(ок) и удалить его(ок). только вот эту операцию в суммой и минимумом надо повторить 10 раз и если сумма спокойно проходит, но минимум он один раз нашел, удалил и успокоился, а мне надо это делать в каждом проходе. я не понимаю в чем проблема. возможно надо использовать итератор, которые мы сейчас проходим, но там я могу удалять только по типу
vector<int>MyVector;
vector<int>::iterator it;
//блабла вектор
it=MyVector.begin()+1;
MyVector.erase(it);
но тут можно удалить первое значение...второе...последнее. а мне нужно удалить min1 причем 10 раз!
помогите, пожалуйста