Sveiki, padėkit išspręsti.
Byloje u1.txt pateiktas realiu skaiciu masyvas i n elementu, n nuo 1 iki 100, pirma surasta neigiama masyvo skaiciu padekite i masyvo gala
, o pirma teigiama i masyvo pradzia, o kitu masyvo elementu vietos nekeiskite. Rezultata isveskite i rezultatu byla rez.txt*/
u1.txt:
-1.25
-2.56
-5.78
2.67
1.70
-3.78
10.56
Pavyzdys:
2.67
-2.56
-5.78
1.70
-3.78
10.56
-1.25
Kas neaišku? Gal pats kiek nors kodo parašęs?
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream bs("u1.txt");
ofstream br("rez.txt");
double neig;
double teig;
int tikr;
bool neigr=false, teigr=false;
int n = 0;
double R[100];
while(!bs.eof())
{
bs >> R[n];
n++;
}
for(int i = 0; i<n; i++) // Pirmos neigiamos reikmes radimas
if(R[i]<0)
{
neig = R[i];
neigr = true;
break;
}
}
for(int i = 0; i<n; i++) // Pirmos teigiamos reikmes radimas
{
if(R[i]>0)
{
teig = R[i];
teigr = true;
break;
}
}
for(int i = 0; i<n;i++) // Pirmos teigiamos ir neigiamos reikmes imetimas i masyvo
{
if(teigr==true && R[i]==teig)
{
for(int j=i;j<n-1;j++)
R[j]=R[j+1];
teigr = false;
}
if(neigr == true && R[i]==neig)
{
for(int j=i;j<n-1;j++)
R[j]=R[j+1];
neigr = false;
}
}
for(int i = 0; i < n;i++)
{
cout << R[i] << endl;
}
return 0;
}
#include <iostream>
#include <fstream>
using namespace std;
//---------------------------------------------------------------------------------------------------
void Reiksmes_Pasalinimas(double R[], int &n, int index)
{
for(int i = index; i<n; i++)
R[i] = R[i+1];
n--;
}
//---------------------------------------------------------------------------------------------------
void Reiksmes_Iterpimas(double R[], int &n, int index, double reiksme)
{
for(int i = n; i>index; i--)
R[i] = R[i-1];
R[index] = reiksme;
n++;
}
//---------------------------------------------------------------------------------------------------
int main()
{
ifstream bs("u1.txt");
ofstream br("rez.txt");
double neig, teig;
int n = 0;
double R[100];
while(!bs.eof())
{
bs >> R[n];
n++;
}n--;
for(int i = 0; i<n; i++) // Susitvarkoma su neigiama reiksme
if(R[i]<0)
{
neig = R[i];
Reiksmes_Pasalinimas(R, n, i);
Reiksmes_Iterpimas(R, n, n, neig);
break; // nutraukiamas ciklas
}
for(int i = 0; i<n; i++) // Susitvarkoma su teigiama reiksmes
if(R[i]>0)
{
teig = R[i];
Reiksmes_Pasalinimas(R, n, i);
Reiksmes_Iterpimas(R, n, 0, teig);
break; // nutraukiamas ciklas
}
for(int i = 0; i < n;i++)
br << R[i] << endl;
bs.close();
br.close();
return 0;
}