eMatematikas.lt
Testai Forumas Prisijungti        

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

Informatika Peržiūrų skaičius (349)

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!