Pereiti prie turinio

C++ uždavinys. Mokyklinis kursas.


Rekomenduojami pranešimai

Sveiki, neseniai pradėjau mokytis programavimo, sėdžiu prie vieno uždavinio ir nekyla minčių kaip programą padaryti universalią, jog pakeitus "duom.txt" failus, programa veiktų.

 

Sąlyga:

 

Žinomas n sveikųjų skaičių masyvas. Sukurkite programą išspausdinančia TAIP, jei masyvo elementų reikšmės masyve išdėstytos simetriškai, ir NE priešingu atveju.

 

"duom.txt" failas:

10

6 4 8 1 2 1 8 6

 

Programa:

 

#include <iomanip>

#include <fstream>

using namespace std;

 

const char FV[] = "duom.txt";

const char FR[] = "rez.txt";

 

void skaityti(const char FV[], int Mas[], int&n);

void skaiciuoti(int Mas[], int n, int&ats);

void rasyti(const char FR[], int ats);

int main()

{

int n, ats = 0;

int Mas[10];

skaityti(FV, Mas, n);

skaiciuoti(Mas, n, ats);

rasyti(FR, ats);

 

return 0;

}

void skaityti(const char FV[], int Mas[], int&n)

{

ifstream fd(FV);

fd >> n;

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

{

fd >> Mas;

}

fd.close();

}

void skaiciuoti(int Mas[], int n, int&ats)

{

for(int i = 0, ii = n - 1; i < ii; i++, ii--)

{

if(Mas != Mas[ii])

{

ats = -1;

}

}

 

 

}

void rasyti(const char FR[], int ats)

{

ofstream fr(FR);

if(ats == -1)

{

fr << "Ne";

}

if(ats == 0)

{

fr << "Taip";

}

}

 

Būtent dėl paryškintos eilutės programos negaliu padaryti universalios, kaip ją turėčiau padaryti?

Bandžiau rašyti Mas[n], tačiau tuomet subuildinus programą .exe failas išvis nustoja veikti,nors errorų nėra.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Dėkui, iki dinaminių masyvų dar nebuvau nuėjęs, dabar jau aišku viskas :).

O beje jums irgi buildinant programą kartais rašo ".exe failas nustojo veikti" ? Nes errorų kaip ir nepadarau, tačiau programa nepasileidžia.

 

Gali taip būti dėl Avast antivirusinės, jei tokia pas tave yra, kadangi ji kartais neišjungia programos iš esančio "SandBox". Jeigu išmeta "stopped working", eik į task manager ir rankiniu būdu, susiradęs programą, išjunk.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Gali taip būti dėl Avast antivirusinės, jei tokia pas tave yra, kadangi ji kartais neišjungia programos iš esančio "SandBox". Jeigu išmeta "stopped working", eik į task manager ir rankiniu būdu, susiradęs programą, išjunk.

 

Eset nod32 pas manęs.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Atminties apsauga suveikia. Sukurdamas lokalųjį kintamąjį n ir jo neapibrėždamas leidi jam įgyt reikšmę prieš tai buvusią atmintyje. Jei ten buvo 0 tada tavo masyvas turės 0 elementų ir bandydamas įrašyt į kurią nors masyvo vietą gauni nustojimą veikt nors sintaksiškai viskas teisingai bei kompiliuoja gerai.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...