Labas vakaras gal galit priminti kaip suieškoti daliklių kiekį ir kaip man juos įsiminti t.y. kiekvieno skaičiaus daliklių kiekį? Uždavinys - Duomenų faile parašytas skaičius n, kuris reiškia žemiau surašytų sveikųjų skaičių kiekį. Kitoje eilutėje surašyti natūralieji skaičiai. Parašykite programą, kuri į rezultatų failą išvestų tuos skaičius didėjančiai pagal jų turimų daliklių skaičių. Pvz. Duomenų failas 5 2 12 6 24 59
Rezultatų failas 2 59 6 12 24
pakeista prieš 5 m
Tomas PRO +4543
Apie struktūras žinai?
Karolis921 +68
Kol kas dar ne :/
Tomas PRO +4543
O masyvai?
Karolis921 +68
Pažįstu, su dvimačiais kiek mažiau dirbęs.
pakeista prieš 5 m
Tomas PRO +4543
Na čia be dvimačių apsieisim. Šiaip skaičiaus sk daliklių kiekio radimas gali būti įgyvendinimas ciklu. Jo esmė tokia: Su kiekviena ciklo i parametro reikšme patikrinami visi galimi dalikliai nuo 1 iki n imtinai. Tikrinimas vyksta taip: jei sk dalijasi iš i be liekanos, tai yra i yra skaičiaus sk daliklis, tada daliklių skaičių saugantis kintamasis dal didinamas vienetu.
pakeista prieš 5 m
Tomas PRO +4543
Užrašyk funkciją Dalikliai (int sk), kuri skaičiuotų skaičiaus sk daliklių skaičių, ir įkelk ją čia.
Karolis921 +68
int dalikliai (int sk) { int n, dal=0; cin >>n>>sk; for (int i=1; i<n; i++) { if (sk/i==0) { i=sk; dal++; } } }
Kažkas panašaus?
Tomas PRO +4543
Neteisingai.
pakeista prieš 5 m
Tomas PRO +4543
Nereikalingas sakinys: cin >>n>>sk; Turi būti taip: for (int i=1; i<=n; i++) Ar dalijasi iš i tikriname taip: if (sk%i==0) Nereikalingas priskyrimas: i=sk; Pabaigoje trūksta return dal;