eMatematikas Prisijunk Forumas Egzaminų užduotys ONLINE testai

C užduotis su masyvais. Žaislai


Laba diena,

norejau paklausti kaip butu galima uzbaigti sia uzduoti

Šokoladinių kiaušinių žaisliukų pilną kolekciją sudaro 100 žaisliukų. Kiekvienas žaisliukas turi savo
numerį kolekcijoje.
Lina ir Jurgis visą vasarą rinko žaisliukus. Rugsėjo pradžioje sutarė apsimainyti žaisliukais taip, kad
kiekvieno turima kolekcija pasipildytų naujais žaisliukais. Mainams galima siūlyti tuos žaisliukus,
kurių kolekcijoje yra daugiau kaip vienas. Tačiau mainams netinka tie žaisliukai, kuriuos jau turi
draugas. Mainams negalima siūlyti kelių vienodų žaisliukų.
Parašykite programą, kuri:
• atrinktų Linos siūlomus mainams su Jurgiu žaisliukų numerius;
• atrinktų Jurgio siūlomus mainams su Lina žaisliukų numerius;
• sudarytų bendros kolekcijos žaisliukų numerių sąrašą. Numeriai negali kartotis.
Duomenys. Tekstiniame faile U1duom.txt yra trys eilutės:
• pirmoje eilutėje yra du skaičiai:
n (1 <= n <= 500) – Linos turimų žaisliukų skaičius ir m (1 <= m <= 500) –
Jurgio turimų žaisliukų skaičius;
• antroje eilutėje yra Linos kolekcijos žaisliukų numeriai;
• trečioje – Jurgio kolekcijos žaisliukų numeriai.
Linos ir Jurgio žaisliukų numeriai išdėstyti atsitiktine tvarka. Numeriai skiriami vienu tarpu.
Rezultatai. Siūlomų mainams žaisliukų numerius spausdinkite didėjimo tvarka tekstiniame faile
U1rez.txt. Numerius faile atskirkite vienu tarpu.
• pirmoje eilutėje spausdinkite Linos siūlomų mainams žaisliukų numerius;
• antroje – Jurgio siūlomų mainams žaisliukų numerius;
• jeigu kuris nors iš jų neturi nė vieno mainams žaisliuko, tuomet spausdinkite
atitinkamoje eilutėje 0 (nulį);
• trečioje eilutėje spausdinkite Linos ir Jurgio bendros kolekcijos žaisliukų numerius
didėjimo tvarka. Numeriai negali kartotis.
Nurodymai:
• rašydami programą naudokite tik vienmačius sveikųjų skaičių masyvus;
• programoje neturi būti sakinių, skirtų darbui su ekranu.



Pavyzdys

U1duom.txt
8 14    8 – Linos turimų žaisliukų skaičius,  14 – Jurgio 
5 6 6 9 14 25 8 26 Linos turimų žaisliukų numeriai
5 20 6 7 13 7 9 10 12 20 15 16 21 5 Jurgio turimų žaisliukų numeriai



U1rez.txt
0 Lina neturi nė vieno žaisliuko mainams su Jurgiu
7 20 Jurgis turi tik du žaisliukus mainams su Lina Linos ir
5 6 7 8 9 10 12 13 14 15 16 20 21 25 26 Jurgio bendros kolekcijos turimų žaisliukų numeriai




#include <iostream>

#include <fstream>
using namespace std;


int main()
{
int J[101], L[101], Lk[100], Jk[100];
int n, m, i, nr, nrL, nrJ;
for (i = 1; i <= 100; i++)
{
J[i] = 0;
L[i] = 0;
}
ifstream df("duom.txt");
df >> n >> m;
for (i = 0; i < n; i++)
{
df >> nr;
L[nr] = L[nr] + 1;
}
for (i = 0; i < m; i++)
{
df >> nr;
J[nr] = J[nr] + 1;
}
df.close();

nrL = 0;
nrJ = 0;
for (i = 1; i <= 100; i++)
{
if (L[i] > 1 && J[i] == 0)
{
Lk[nrL] = i;
nrL = nrL + 1;
}
if (J[i] > 1 && L[i] == 0)
{
Jk[nrJ] = i;
nrJ = nrJ + 1;
}
}

ofstream rz("rez.txt");

if (nrL == 0)
rz << "0L"<<endl;
if(nrJ== 0)
rz << "0J"<<endl;

for (i = 0; i < nrL; i++)
{
rz << Lk[i] << " ";
}
for (i = 0; i < nrJ; i++)
{
rz << Jk[i]<<" ";
}

rz<<endl;


rz.close();
return 0;
}

pakeista prieš 5 m

Na jei viską darant pagal tavo kodą, tai paskutinės eilutės išvedimas turėtų būti įgyvendinamas užrašant tokį kodą:for (i = 1; i <=100; i++)
{
if (L[i]!=0) rz << i <<" ";
else if (J[i]!=0) rz << i <<" ";
}

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