Прочитать значения вектора чисел с плавающей точкой из текстового файла. Удалить из вектора все элементы, у которых дробная часть содержит больше 3-х значащих цифр. Перед каждым элементом, целая часть которого является нечетным числом, вставить значение его квадрата.
Код
#include<iostream>
#include<vector>
#include<fstream>
#include<cmath>
using namespace std;
int function(double n)
{
int temp;
if((n/2)-(int)(n/2)==0)
temp=1;
else temp=0;
return temp;
}
void main()
{
double temp;
int j,k;
vector <double> v;
vector <double>::iterator i;
fstream f;
f.open("1.txt",ios::in);
cout<<"vot oni:"<<endl;
while(!f.eof())
{ f>>temp;
if((fabs(temp)-fabs((int)(temp)))!=0)
v.push_back(temp);
}
for(i=v.begin();i!=v.end();i++)
cout<<*i<<" ";
cout<<endl;
f.close();
do
{k=0;
for(i=v.begin(),j=0;i!=v.end();i++,j++)
if((fabs(v[j]*1000)-fabs((int)(v[j]*1000)))>0)
{ v.erase(i);
k++;
break;
}
}
while(k==1);
for(i=v.begin();i!=v.end();i++)
cout<<*i<<" ";
cout<<endl;
j=0;
i=v.begin();
for(;i!=v.end();i++,j++)
if(function(fabs((int)(v[j])))==0)
{ v.insert(i,v[j]*v[j]);
k++;
j++;
i=v.begin()+j;
}
for(i=v.begin();i!=v.end();i++)
cout<<*i<<" ";
cout<<endl;
}
P.S. В файле 1.txt все элементы (числа) правильно расположены и написаны.