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

Masyvo sukeitimas


AweX

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 2397 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, taigi sukūriau programa kuri sukeičia eilutės seka atvirkščiau, tarkim yra (1,2,3,4,) gauname (4,3,2,1) .Norėčiau paklausti, kaip reikėtu padaryti, kad masyvas automatiškai pats sukeistu skaičius, kad nereikėtu įvedinėti rankiniu būdų? ar prie šios programos reikia kažką tobulinti ar visai perkurti? Programa nėra visiškai tvarkingai, čia tokį kaip šablona pasidalinu.

Jei kas turit kokių įdėjų, galbūt pasidalinsit? :)

 

using namespace std;
const int Apgre = 11;
int M[Apgre];
int n=5;

void pradzia (int M[], int &n, int &i, int &j);
//void pabaiga (int M[]);

int main()
{
    int i, j;
    pradzia (M, n, i, j);

    return 0;
}
//-------
void pradzia (int M[], int &n, int &i, int &j){
    int temp, k;

    for (int i = 0; i < n; i++)
    {
        cout << i + 1 << " Masyvo elementas"; cin >> M[i];
    }
    if (n % 2 == 0)
    k = n / 2;
    else
        k = n / 2 + 1;
    cout<< "eee" << k << endl;
   for (i = 0; i < k; i++)
   {
    cout << "Áveskite kokius elementus norite sukeisti " << endl;
    cin >> i; cin >> j;
    temp = M[i];
    M[i] = M[j];
    M[j] = temp;

   }
    cout << endl;

    for ( int i = 0; i < n; i++)
    {
     cout << i + 1 << " Masyvo elementas" << M[i] << endl;
    }

}

 

Nuoroda į komentarą
Dalintis per kitą puslapį

Jei gerai įsiskaičiau, tai tau reikia ne surikiuoti masyvą, bet sukeisti eilutės seką atvirkščiai. Tada, paprasčiausias būdas būtų:

  const int SIZE = 10;
  int arr [SIZE] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
  std::reverse(std::begin(arr), std::end(arr));

Sudėtingesnis sprendimas (nenaudojant built-in funkcijos) būtų:

int temp, i;
for (i = 0; i < count/2; ++i) {
    temp = arr[count-i-1];
    arr[count-i-1] = arr[i];
    arr[i] = temp;
}
Nuoroda į komentarą
Dalintis per kitą puslapį

(redaguota)
On 9/29/2017 at 21:50, Developer parašė:

Jei gerai įsiskaičiau, tai tau reikia ne surikiuoti masyvą, bet sukeisti eilutės seką atvirkščiai. Tada, paprasčiausias būdas būtų:


  const int SIZE = 10;
  int arr [SIZE] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
  std::reverse(std::begin(arr), std::end(arr));

Sudėtingesnis sprendimas (nenaudojant built-in funkcijos) būtų:


int temp, i;
for (i = 0; i < count/2; ++i) {
    temp = arr[count-i-1];
    arr[count-i-1] = arr[i];
    arr[i] = temp;
}

Dėkui, išbandysiu abu variantus, o ten su built funkcija, tas eilutes ten pačioj pradžioj taip padaryti ir po to tik cout << arr << endl; ar kaip?

Su count viskas, pavyko, dėkui, žinosiu ateičiai.

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

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 2397 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!

Svečias
Ši tema yra užrakinta.
  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...