eMatematikas
Kategorijos +Nauja tema Prisijungti        

Skaičių seka, skaičiaus radimas bei pozicija kurioje jis turi būti.


Sveiki, turiu uždavinį, kuriame stringu ties viena vieta ir nebežinau kaip spręsti, uždavinio sąlyga skamba taip -
Duomenų faile parašyta n skaičių seka. Skaičiai turėtų būti surašyti nemažėjančiai, bet vienas iš skaičių parašytas netinkamoje vietoje. Parašykite programą, kuri:
Suranda, koks tai skaičius;
Kokioje vietoje jį reikėtų įterpti, jeigu jis nebūtų sąraše.

Pvz.:
Duomenys        
7
10 12 12 18 14 21 25

Rezultatai:
Tai skaičius 14, jis turi būti 4-oje pozicijoje.


Turiu klausimą ar čia man reikia viską susižinoti (t.y. skaičių ir jo vietą) rikiuojant ar galima šį uždavinį išspręsti ir be rikiavimo?

Paskutinį kartą atnaujinta 2019-05-17

0

Gali ir be rikiavimo tai padaryti, surask elementą esanti ne savo vietoje sukdamas for ciklą nuo 0 iki n-1 ir tikrink jei masyvas[i+1] yra mažesnis už masyvas[i], jei tai yra tiesa reiškia elementas yra ne savo vietoje.Tada, tiesiog surask pirmą pasitaikiusi elementą, kuris yra didesnis už ne savo vietoje esantį skaičių ir gauk jo indexą.

0

Ačiū, tai turėjai galvoje? -

for (int i=0; i<n-1; i++)
    {
        if (mas[i+1]<mas[i])
        {
            cout<<"Tai skaicius "<<mas[i+1]<<", jis turi buti "<<i+1<<"-oje pozicijoje.";
        }
    }

0

Taip.

0

Norėdami rašyti žinutes privalote prisijungti!