Pereiti prie turinio

Masyvo skaičių apkeitimas


Rekomenduojami pranešimai

Žodžiu reikia apkeisti masyvo duomenis, pvz jeigu yra 6 duomenys masyve, tai 1-6, 2-5 ir t.t.

 

Parašiau kodą:

#include <iostream>
const int CIlgis = 100;
using namespace std;
void Ivedimas(int &n, int A[]);
void Apkeitimas(int n, int A[]);

int main(){
   int mas[CIlgis], n;
   Ivedimas(n, mas);
   Apkeitimas(n, mas);
   return 0;
}
void Ivedimas(int &n, int A[]){
   cout << "Iveskite kiek skaiciu bus: "; cin >> n;
   for(int i = 0; i < n; i++){
       cout << "Iveskite skaiciu, nr " << i << " "; cin >> A[i];
   }
}
void Apkeitimas(int n, int A[]){
   int temp;
   for(int i = 0; i < n; i++){
       swap(A[i], A[n-(i+1)]);
       cout << A[i] << endl;
   }
}

 

Bet apkeičia tik pusę narių(http://prntscr.com/5l373v), nors turėtų visus apkeist.. Nesuprantu kas blogai, gal galit paaiškinti, ką blogai padariau?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Žodžiu reikia apkeisti masyvo duomenis, pvz jeigu yra 6 duomenys masyve, tai 1-6, 2-5 ir t.t.

 

Parašiau kodą:

#include <iostream>
const int CIlgis = 100;
using namespace std;
void Ivedimas(int &n, int A[]);
void Apkeitimas(int n, int A[]);

int main(){
   int mas[CIlgis], n;
   Ivedimas(n, mas);
   Apkeitimas(n, mas);
   return 0;
}
void Ivedimas(int &n, int A[]){
   cout << "Iveskite kiek skaiciu bus: "; cin >> n;
   for(int i = 0; i < n; i++){
       cout << "Iveskite skaiciu, nr " << i << " "; cin >> A[i];
   }
}
void Apkeitimas(int n, int A[]){
   int temp;
   for(int i = 0; i < n; i++){
       swap(A[i], A[n-(i+1)]);
       cout << A[i] << endl;
   }
}

 

Bet apkeičia tik pusę narių(http://prntscr.com/5l373v), nors turėtų visus apkeist.. Nesuprantu kas blogai, gal galit paaiškinti, ką blogai padariau?

 

Apkeitimas turėtų vykti tik iki n/2, o pas tave vyksta iki n.

Todėl tavo programa swapina masyvo narius šitaip:

0-4

1-3

2-2

3-1

4-0

Tu kuriuos paboldinau neturėtų swapint, nes taip sugrąžina seną tvarką, o 2-2 neatlieka naudingo darbo :)

Redagavo vsbenas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Apkeitimas turėtų vykti tik iki n/2, o pas tave vyksta iki n.

Todėl tavo programa swapina masyvo narius šitaip:

0-4

1-3

2-2

3-1

4-0

Tu kuriuos paboldinau neturėtų swapint, nes taip sugrąžina seną tvarką, o 2-2 neatlieka naudingo darbo :)

Aišku, dėkui. :)

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ą...