Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

C++ su masyvo nariu salinimu ir naujo masyvo formavimu


silverfoxas

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 1150 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Sveiki, iškilo problema sprenžiant uždavinį, kuriame reikia šalinti masyvo narius ir suformuoti naują masyvo sarašą. 

uzdavinys.jpg.41b36bf717a1b46e48af0bc669e15d64.jpg

sunkiausia yra parasyt ta formavimo funkcija, nors vistiek atsakymai gaunasi blogai kad ir kaip beparasyciau

Mano sprendimas

#include <iostream>
#include <iomanip>
#include <fstream>
#include <cmath>
using namespace std;
const char SF [] = "Duomenys.txt";
const char RF [] = "Rezultatai.txt";

void skaitymas (const char SF[], int &n, int A[], int B[]);
void salinti (int A[], int B[],int &n);

void salinti2 (int A[], int B[],int &n);
void formavimas (int &n, int A[],int B[],int &k);
void atsakymai (const char RF[], int A[], int n);

int main()
{
    int n; /// zibintu skaicius;
    int A[100], B[100]; /// zibintu numeriu masyvai ir zibintu busenu masyvai
    int k;

    ofstream rf(RF);
    skaitymas (SF,n,A,B);
    salinti (A,B,n);
    atsakymai (RF,A,n);
    salinti2 (A,B,n);
    formavimas (n,A,B,k);
    atsakymai(RF,A,n);


    return 0;
}

void skaitymas (const char SF[], int &n, int A[], int B[])
{
    ifstream sf (SF);

    sf >> n;

    for (int i=0; i<n; i++)

    sf >> A >> B;

    sf.close();
}

void salinti(int A[], int B[],int &n)
{

    for (int i=0; i<n; i++) {
    if (B   == 0)
    {
        for (int k=i; k<n; k++)
            B[k]=B[k+1];
            A[k]=A[k+1];
        n--;i--;
    }
} }

void salinti2 (int A[], int B[],int &n)
{

    for (int i=0; i<n; i++) {
    if (B   == 1)
    {
        for (int k=i; k<n; k++)
            B[k]=B[k+1];
            A[k]=A[k+1];
        n--;i--;
    }
} }

 

void atsakymai (const char RF[], int A[], int n)

{
    ofstream rf (RF, ios::app);
    for (int i=0; i<n; i++)
    rf << A << " ";
    rf << endl;

}

Buciau dekingas jei patartumet kaip issprest

Redaguota , nario silverfoxas
Nuoroda į komentarą
Dalintis per kitą puslapį

#include <iostream>

using namespace std;

void Input(int& n, int numbers[], int conditions[]);
void Delete(int n, int m, int index, int numbers[], int not_working[], int conditions[]);
void Format_array(int x, int index, int not_working[]);
void Print(int n, int array[]);
void Print();

int main()
{
    int n;
    int numbers[100]; // Zibintu numeriai
    int conditions[100]; // Zibintu busena (1/0)
    int not_working[100]; // Neveikianciu zibintu numeriai
    int m = 0; // Neveikianciu zibintu kiekis
    Input(n, numbers, conditions);
    if (n != 0)
    {
        for (int i = 0; i < n; i++)
        {
            if (conditions[i] == 0)
            {
                Delete(n, m, i, numbers, not_working, conditions);
                i--;
                m++;
                n--;
            }
        }
        Print(n, numbers);
        Print(m, not_working);
    }
    else
    {
        Print();
    }

    return 0;
}

// Pradiniu duomenu ivedimo funkcija
void Input(int& n, int numbers[], int conditions[])
{
    cin >> n;
    for (int i = 0; i < n; i++)
    {
        cin >> numbers[i] >> conditions[i];
    }
}
// Masyvo elemeto salinimo funkcija
void Delete(int n, int m, int index, int numbers[], int not_working[], int conditions[])
{
    Format_array(numbers[index], m, not_working);
    for (int i = index; i < n - 1; i++)
    {
        numbers[i] = numbers[i + 1];
        conditions[i] = conditions[i + 1];
    }
}
// Naujo saraso formatavimo funkcija
void Format_array(int x, int index, int not_working[])
{
    not_working[index] = x;
}
// Rezultatu isvedimo funkcija
void Print(int n, int array[])
{
    for (int i = 0; i < n; i++)
        cout << array[i] << " ";
    cout << endl;
}
void Print()
{
    cout << "NERA" << endl;
}

 

Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 1150 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Prisijungti prie diskusijos

Palikti atsakymą galite iš karto, o užsiregistruoti vėliau. Jeigu jau turite paskyrą mūsų forume, Prisijunkite.

Svečias
Atsakyti šioje temoje...

×   Įklijuotas tekstas turi teksto formatavimą.   Pašalinti teksto formatavimą

  Galimi tik 75 veidukai.

×   Nuoroda buvo automatiškai įterpta.   Įterpti nuorodą paprastai

×   Jūsų ankstesnis pranešimas buvo atkurtas.   Išvalyti redaktorių

×   Jūs negalite įkelti nuotraukas tiesiogiai.Įkelkite arba įdėkite nuotraukas iš URL.

Skelbimai


×
×
  • Sukurti naują...