Pereiti prie turinio

užstringa, kinta kintamieji...


Rekomenduojami pranešimai

Sveiki. Parašiau kodą ir po paleidimo po kelių sekundžių meta "has stopped working". Nežinau kodėl taip yra, nes kodas neatlieka amžino ciklo. Taip pat iš po funkcijos kintamieji pakito, nors taip neturėjo būti.

Kodas:

#include <iostream>
#include <fstream>

using namespace std;

void nuskaityti (int mapas[][11])
{
   ifstream fd("duom.txt");
   for(int i=1;i<=11;i++)
       for(int q=1;q<=11;q++)
           fd>>mapas[i][q];
   fd.close();
   for(int a=1;a<=11;a++)
   {
       for(int b=1;b<=11;b++)
           cout<<mapas[a][b]<<" ";
       cout<<endl;
   }
}
int main()
{
   int mapas[11][11];

   nuskaityti(mapas);

   cout<<" po to"<<endl;

   for(int a=1;a<=11;a++)
   {
       for(int b=1;b<=11;b++)
           cout<<mapas[a][b]<<" ";
       cout<<endl;
   }

   return 0;
}

duom:

1 1 1 1 1 1 1 1 1 1 1 
1 2 2 0 0 0 0 0 0 0 1 
1 2 2 0 0 0 0 0 0 0 1 
1 0 1 1 0 0 0 0 0 0 1 
1 0 0 0 0 0 0 0 0 0 1 
1 0 0 1 0 1 0 0 0 0 1 
1 0 0 0 0 1 1 0 0 0 1 
1 0 0 0 1 1 0 0 0 0 1 
1 0 0 0 0 0 0 0 0 0 1 
1 0 0 0 0 0 0 0 0 0 1 
1 1 1 1 1 1 1 1 1 1 1 

o paleidus rodo:

1 1 1 1 1 1 1 1 1 1 1 
1 2 2 0 0 0 0 0 0 0 1 
1 2 2 0 0 0 0 0 0 0 1 
1 0 1 1 0 0 0 0 0 0 1 
1 0 0 0 0 0 0 0 0 0 1 
1 0 0 1 0 1 0 0 0 0 1 
1 0 0 0 0 1 1 0 0 0 1 
1 0 0 0 1 1 0 0 0 0 1 
1 0 0 0 0 0 0 0 0 0 1 
1 0 0 0 0 0 0 0 0 0 1 
1 1 1 1 1 1 1 1 1 1 1 
po to
1 1 1 1 1 1 1 1 1 1 1 
1 2 2 0 0 0 0 0 0 0 1 
1 2 2 0 0 0 0 0 0 0 1 
1 0 1 1 0 0 0 0 0 0 1 
1 0 0 0 0 0 0 0 0 0 1 
1 0 0 1 0 1 0 0 0 0 1 
1 0 0 0 0 1 1 0 0 0 1 
1 0 0 0 1 1 0 0 0 0 1 
1 0 0 0 0 0 0 0 0 0 1 
1 0 0 0 0 0 0 0 0 0 11
11 1 1 1 1 1 1 1 1 1 1 

Kodėl taip yra? Kodėl iš 1 tapo 11 ir kodėl meta, kad "has stopped working". Naudoju CodeBlock 12.11, operacinė sistema: windows 7

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Ačiū už pagalba. Iškilo dar viena problema.

#include <iostream>
#include <fstream>

using namespace std;
//----------
struct kordinates
{
   int x,y;
};
//---------
void nuskaito(struct kordinates kord)
{
   ifstream fd("duom.txt");
   fd>>kord.x>>kord.y;
   fd.close();
   cout<<kord.x<<" "<<kord.y<<endl;
}
//----------
int main()
{
   struct kordinates kord;
   nuskaito(kord);
   cout<<kord.x<<" "<<kord.y<<endl;
   return 0;
}

Iš pradžių atspauzdina 4 ir 8, tačiau veliau kai spauzdina, tai rodo nesamanes, milžiniškus skaičius. Kodėl taip yra?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Ačiū už pagalba. Iškilo dar viena problema.

#include <iostream>
#include <fstream>

using namespace std;
//----------
struct kordinates
{
   int x,y;
};
//---------
void nuskaito(struct kordinates kord)
{
   ifstream fd("duom.txt");
   fd>>kord.x>>kord.y;
   fd.close();
   cout<<kord.x<<" "<<kord.y<<endl;
}
//----------
int main()
{
   struct kordinates kord;
   nuskaito(kord);
   cout<<kord.x<<" "<<kord.y<<endl;
   return 0;
}

Iš pradžių atspauzdina 4 ir 8, tačiau veliau kai spauzdina, tai rodo nesamanes, milžiniškus skaičius. Kodėl taip yra?

 

Milžiniški skaičiai ir pan. - galimos neaprašytos kintamųjų reikšmės.

 

Pas tave funkcija `nuskaito` yra iškviečiama pagal reikšmę, todėl tau nesikeičia kintamojo `kord` reikšmė ir po to spausdini jį neaprašytą t.y. nesuteikei jam reikšmės dėl kurios gauni nerealų rezultatą. Pagal tavo idėją turėtum funkciją iškviesti su nuoroda.

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.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

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