eMatematikas Prisijunk Forumas Egzaminų užduotys ONLINE testai

Uždavinys su masyvais keičiant elementų vietą


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 isšveskite 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?

esu

#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 reikšmes radimas
        if(R[i]<0)
        {
            neig = R[i];
            neigr = true;

            break;
        }
    }
    for(int i = 0; i<n; i++) // Pirmos teigiamos reikšmes radimas
    {
        if(R[i]>0)
        {
            teig = R[i];
            teigr = true;

            break;
        }
    }
    for(int i = 0; i<n;i++) // Pirmos teigiamos ir neigiamos reikšmes išmetimas 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;
}

pakeista prieš 7 m

Nori sudalyvauti šioje temoje ir parašyti savo pranešimą? Prisijungti »